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

来源:互联网 发布:c语言atm机程序 编辑:程序博客网 时间:2024/06/01 07:12

表达式和运算符

 

数组直接量中的列表逗号之间的元素可以省略,这是省略的空位会填充值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异常。

vargeval = 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语句定义的函数和函数参数不能删除

0 0
原创粉丝点击