[Javascript 高级程序设计]学习心得记录5 操作符和语句

来源:互联网 发布:淘宝男装 编辑:程序博客网 时间:2024/06/06 07:06

所有编程语言都有的操作符和语句,大部分内容都差不多。这里回顾回顾,重点讲讲js的操作符和语句跟其他语言不同的地方。

一,操作符

一元操作符和位操作符就不说了,用得太少了,要用的时候看也不迟。js的操作符操作符最值得注意的地方是:会把处理的数据变成自己操作的类型,然后进行操作。

    (1)布尔操作符

        逻辑非(!):值得注意的是对象,非空字符串,非0数值都会先转化成true;而"",0,null,NaN,undefined都会先转化成false。

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

       逻辑与($$):要注意的地方是:

               1. 短路操作

               2.第一个操作数是对象,返回第二个操作数。第二个操作数是对象时,第一个返回true的话,返回第二个操作数。

               3.有一个操作数是null,NaN, undefined 时,返回null,NaN, undefined。

       逻辑或(||):和与的区别是第二个操作数是对象时,第一个返回false的话,返回第二个操作数。

               可以利用逻辑或来避免为变量赋非法值,如var num = num1 || num2  当num1为空时,num2还可以顶上。


    (2)乘法操作符

        没什么好说的,Infinity*0 结果是NaN

    (3)加性操作符

        要注意的是,有两点:

                1. true和false会转化成1和0,null, undefined被转化成0,有NaN的结果都是NaN

                2.操作数为字符串时,+会变成字符串拼接符号。

        var result1 = 5 + 5;     //two numbers        alert(result1);           //10        var result2 = 5 + "5";   //a number and a string        alert(result2);           //"55"

(4)关系操作符

1,当一个操作数是数字,另一个不是的时候,会把另一个操作数转化成数字,不能转化的话结果就是false

2,当两个操作数都是字符串的时候,按顺序比较字符的编码,值得注意的是 “23”<“3”

3,如果操作数是对象,就会调用对象的valueOf()方法,没有就调用toString()方法

4,值得注意的是 null>0 为false null>=0 为true(http://www.jb51.net/article/106370.htm)

(5)相等操作符

1,值得注意的是:null和undefined是相等的,但是不等于0 (此时不尝试转换,直接为false)

2,全等(===),除了不转换操作数,其他都和==一样

二,语句

语句值得一提的地方只有switch。js的switch可以使用任何数据类型,case的值可以是变量或者表达式

switch ("hello world") {            case "hello" + " world":                 alert("Greeting was found.");                break;            case "goodbye":                 alert("Closing was found.");                break;            default:                 alert("Unexpected message was found.");        }

var num = 25;        switch (true) {            case num < 0:                 alert("Less than 0.");                break;            case num >= 0 && num <= 10:                 alert("Between 0 and 10.");                break;            case num > 10 && num <= 20:                 alert("Between 10 and 20.");                break;            default:                 alert("More than 20.");        }

就说这么多吧,结束。

阅读全文
0 0
原创粉丝点击