Skip to content

JavaScript基础学习笔记(二)——操作符、语句、函数 #11

@TsingM

Description

@TsingM

操作符

1. 一元操作符
1)递增和递减操作符(++/--):前置在被求值之前执行,后置在之后
2) 一元加和减操作符

2. 位操作符
1)按位非(~)
2)按位与(&)
3)按位或(|)
4)按位异或(^):同为0异为1
5)左移(<<)
6)右移(>>)

var old = 2;    //等于二进制的10
var new = old << 5;     //等于二进制的1000000,十进制的64

3. 布尔操作符
1)逻辑与(&&):如果第一个操作数可以决定结果,则不会再对第二个操作数求值。
2)逻辑或(||)
3)逻辑非(!)

alert(!false);  //true
alert(!"blue"); //false
alert(!0);  //true
alert(!NaN);    //true
alert(!""); //true
alert(!12345);  //false

4. 乘性操作符
1)乘法(*)
2)除法(/)
3)求模(%)

5. 加性操作符
1)加法:如果只有一个操作符是字符串,则将操作数转换为字符串,然后再将两个字符串拼接起来。
var result = 5 + "5"; //"55"
2)减法

6. 关系操作符
小于(<)、大于(>)、小于等于(<=)、大于等于(>=)这几个关系操作符都返回一个布尔值。如果两个操作数都是字符串,则比较两个字符串所对应的字符编码值;如果其中一个是字符串,则将其转换为数值再进行比较。

var result1 = "Brick" < "alphabet"; //true "B"的字符编码小于"a"
var result2 = "Brick".toLowerCase() < "alphabet".toLowerCase(); //false
var result3 = "23" < "3";   //true "2"的字符编码比"3"小
var result4 = "23" < 3; //false "23"被转换为23 

7. 相等操作符
1)相等与不相等(==):先转换再比较
2)全等与不全等(===):不转换直接比较

var result1 = ("55" == 55); //true "55"被转换为55
var result2 = ("55" === 55);    //false

8. 条件操作符
var max = (num1 > num2) ? num1 : num2 //取两者最大值

9. 赋值操作符

10. 逗号操作符
var num1 = 1, num2 = 2, num3 = 3

语句

1. if语句
最佳实践是始终使用代码块

if(i >25) {
    alert("More than 25.");
} else if (i < 0) {
    alert("Less than 0.");
} else {
    alert("Between 0 and 25");
}

2. do-while语句
后测试循环语句,常用于循环体中代码至少要被执行一次的情形。

do {
    statement
} while (expression);

3. while语句
前测试循环语句
while(expression) statement

4. for语句
前测试循环语句,使用while做不到的,for也做不到,只是把与循环相关的代码集中在了一个位置。
for (;;) //无限循环

5. for-in语句
用来枚举对象的属性

for (var propName in window) {
    document.write(propName);
}

6. label语句
在代码中添加标签,与for语句等配合使用。

7. break和continue语句
break语句立即退出循环,强制继续执行循环后面的语句;
continue语句立即退出循环,但退出后会从循环的顶部继续执行。

var num = 0;
for (var i=1; i < 10; i++) {
    if (i % 5 == 0) {
        //break;continue;
    }
    num++;
}
alert(num); //4,8

8. with语句
将代码的作用域设置到一个特定对象中,严格模式不允许使用。

9. switch语句

switch (i) {
    case 1:
        alert("1");
        break;
    case 2:
        alert("2");
        break;
    case 3:
        alert("3");
        break;
    default:
        alert("Other");
}

函数

function name(arg0, arg1,...,argN) {
    statements
};

1)函数在定义时不必指定是否返回值;
2)函数在执行return语句之后停止并立即退出,其后的任何代码永远不会执行;
3)return语句也可以不带有任何返回值,只用作停止函数,将会返回一个undefined值;
4)参数类型、个数完全自由,可以通过arguments对象访问参数数组,arguments.length获取参数个数,arguments和参数对应值保持同步;

function doAdd() {
    alert(arguments.length);
    if(arguments.length == 1) {
        alert(arguments[0] + 10);
    } else if (arguments.length == 2) {
        alert(arguments[0] + arguments[1]);
    }
}
doAdd(10);  //1,20
doAdd(30, 20);  //2,50

5)没有传递值得命名参数将被自动赋予undefined值;
6)没有函数签名,无法实现函数重载。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions