您的位置:首页 > Web前端 > JavaScript

JavaScript学习笔记2----类型、值和变量

2016-11-28 16:49 429 查看
表达式和运算符

 

数组直接量中的列表逗号之间的元素可以省略,这是省略的空位会填充值undefined。

       varsparseArray = [1,,,,5]

数组直接量的元素列表结尾处可以留下单个逗号,这时并不会创建一个新的值为undefined的元素。

JavaScript中的所有值不是真值就是假值。

左值:表达式只能出现在赋值运算符的左侧。

所有那些无法转换为数字的操作数都转换为NaN值。

在JavaScript中,所有的数字都是浮点型的,除法运算的结果也是浮点型,5/2 为2.5.

除数为0的运算结果为正无穷大或负无穷大,而0/0的结果是NaN。

求余运算同样适用浮点数,例:6.5%2.1= 0.2

“===”为严格相等运算符,用来检测两个操作数是否严格相等。

(1)       如果两个值类型不相同,则他们不相等。

(2)       如果两个值都是null或undefined,则他们不相等。

(3)       如果两个值是相同的布尔值,则他们相等。

(4)       NaN和其他任何值都不相等,包括它本身!通过x!==x来判断x是否为NaN,只有在x为NaN的时候,这个表达式的值才为true。

 

比较运算符:

       当其中一个操作数是(或者转换后是)NaN的时候,所有4个比较运算符均返回false.

 

eval()

只有一个参数。如果传入的参数不是字符串,它直接返回这个参数。如果是字符串,把字符串当成JavaScript代码编译。失败,返回SyntaxError异常。

var
geval = eval;              
//使用别名调用eval将是全局eval
var x =
"global",
y = "global";
//两个全局变量
function f(){                  
//函数内执行的是局部eval

    var x =
"local";           
//定义局部变量

    eval("x += 'changed';");   
//直接eval更改了局部变量的值

    return x;                  //返回更改后的局部变量
}
function g(){                  
//函数内执行的是全局eval

    var y =
"local";

    geval("y += 'changed';");  
//间接调用改变了全局变量的值

    return y;                  
//返回未更改的局部变量
}
console.log(f(),
x);           
//输出“local changed global”
console.log(g(),
y);           
//输出“local globalchanged ”
typeof 运算符

放在单个操作数的前面, 返回操作数类型。

delete 运算符

删除对象属性或者数组元素。

var a = [1,2,3];
delete a[2]; //删除最后一个数组元素
2 in a;      //元素2 在数组已经不存在了
a.length;    //=》3 ,数组长度并没有改变

用户通过var 语句声明的变量不能除,通过function语句定义的函数和函数参数不能删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js