javascript 表达式和语句

来源:互联网 发布:魔笛手的软件 编辑:程序博客网 时间:2024/04/27 18:47
  1. 对象创建表达式 创建一个对象并调用一个函数初始化新对象的属性
    new Object() new Point(2,3)
  2. 运算符特例:如果操作数是NaN,算术运算的结果是NaN.
    除数为0运算结果为正无穷大或负无穷大,
    而0/0结果是NaN.
    取模的结果符号与第一个操作数保持一致
    NaN和任何其他值都不相等
1+{}  //"1[object object]"对象转换为字符串后进行字符串连接true+true //2 布尔值转换为数字后做加法2+null    //2 null转换为0后做加法2+undefined  //NaN  undefined转换为NaN后做加法1+2+"blind mice" //"3  blind mice"1+(2+"blind mice")//"12 blind mice""11"<"3"   //字符串比较,结果为true"11"<3  //数字比较 "one"<3  //数字比较  "one"转换为NaN,结果为false
  1. in 运算符 ,希望它的左操作数是一个字符串或者可以转换为字符串
var point={x:1,y:1};//定义一个对象"x" in point  //true 对象有一个名为"x"的属性"z" in ponit  //false  对象中不存在名为"z"的属性"toString" in point  //true 对象继承了toString()  方法var data=[7,8,9];//拥有三个元素的数组"0" in data  //true  数组包含元素“0”1 in data //true  数字转换为字符串3 in data //false  没有索引为3的元素
  1. eval() 只有一个参数,如果传入的参数不是字符串,它直接返回这个参数。如果参数是字符串,它会把字符串当成javascript代码进行编译。编译失败则抛出一个语法错误异常。编译成功,则开始执行这段代码,返回字符串最后一个表达式或语句的值。如果最后一个语句没有值,返回undefined.
var geval=eval;//使用别名调用eval将是全局evalvar x="global",y="global";//定义全局变量function f (){    var x="local";    eval("x+='changed';");//改变了局部变量的值    return x;    }function g(){    var y="local";    geval("y+='changed';");//执行全局eval,间接改变了全局变量的值    return y;//返回未改变的局部变量的值    }console.log(f(),x);//local changed globalconsole.log(g(),y);//local  globalchanged
  1. typeof undefined //undefined
    typeof null //object
  2. delete 删除一个不存在的属性,返回true. var声明的变量无法通过delete删除。
var a=[1,2,3];delete a[2];//删除数组最后一个元素a in a;//false 2在数组中已经不存在了a.length  //数组的长度并没有改变
  1. 抛出异常 try catch finally(放置清理代码)
    不论try块中是否产生异常,finally块内的逻辑总是被执行
  2. with 用于临时扩展作用域链
    with (object) statement
    将object添加到作用域的头部,然后执行statement,最后把作用域链恢复到初始状态
with (document.forms[0]){    name.value=" ";    address.value=" ";    email.value=" ";    }//等价代码var  f=document.forms[0];f.name.value=" ";f.address.value=" ";f.email.value=" ";
0 0
原创粉丝点击