JavaScript红宝书笔记(二)---操做符及语句

1.负数二进制存储使用的格式是二进制补码,计算一个数值的二进制补码步骤以下:
(1)取该值的绝对值的二进制(2)取反码(3)反码+1,从而得出补码url

2.位操做:
(1)左移<<:左移符号位不变,空位填0补充
(2)有符号右移>>:右移产生的空位以符号位填充,正数0填充、负数1填充
(3)无符号右移>>>:无符号右移将负数得出二进制补码,当成正数进行右移操做调试

3.逻辑与和逻辑或都为短路操做,逻辑与(逻辑或)第一个操做数为false(true)后面即便会产生错误都不会去检测。code

4.Infinity与0相乘,结果为NaN;Infinity与非0数值相乘,结果为Infinity或者-Infinity;
Infinity除以Infinity,结果为NaN;0除以0,结果为NaN;
若是是非零的有限数被零除,则结果是 Infinity 或-Infinity;
总的来讲,得出的结果为不可预测的基本都为NaN对象

5.任何操做数与 NaN 进行关系比较,结果都是 false。ip

6.因为 ECMAScript 中不存在块级做用域,所以在循环内部定义的变量也能够在外部访问到。作用域

var count = 10;
for (var i = 0; i < count; i++){
    alert(i);
}
alert(i); //10

7.for-in 语句是一种精准的迭代语句,能够用来枚举对象的属性开发

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

8.label添加标签的用法:string

outermost:
for (var i=0; i < 10; i++) {
    for (var j=0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break outermost;
        }
        num++;
    }
}
alert(num); //55

9.with 语句的做用是将代码的做用域设置到一个特定的对象中it

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

with(location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}

在 with 语句的代码块内部,每一个变量首先被认为是一个局部变量,而若是在局部环境中找不到该变量的定义,就会查询location 对象中是否有同名的属性。若是发现了同名属性, 则以 location 对象属性的值做为变量的值。(实际开发不建议使用with语句,会形成调试的困难增长)io

相关文章
相关标签/搜索