Javascript 表达式和运算符

属性访问表达式:

    var o = {x:1, y:{z:3}};//示例对象
    var a = [o, 4, [5,6]];//包含对象的数组
    console.log(o["x"]);//=> 1 对象o的x属性
    console.log(a[2]["1"]);//=> 6 表达式a[2]中索引为1的元素
    console.log(a[0].x);//=> 1 表达式为a[0]的x属性

加法运算:

加法转换规则优先考虑字符串连接,如果其中一个是字符串或者转换为字符串的对象,另外一个操作数将会转换为字符串,加法将进行字符串连接操作,如果两个都不是类字符串(string-like)的,那么都将进行算术加法运算。

“1” + “2” = 12      字符串拼接

1 + 2 = 3      加法运算

“1” + 2 = 12     进行字符串拼接,字符串优先于数字,将数字转换为字符串的对象

对象转换为字符串后进行字符串的拼接

true + true = 2     布尔值转换成数字后进行加法运算

2 + null = 2      null转换为0后进行加法运算

2 + undefined = NaN       undefined转换为NaN后加法运算

"+"运算符具有从左至右的结合性,圆括号可改变运算顺序:

    console.log(1 + 2 + "blind mice");//=> 3 blind mice
    console.log(1 + (2 + "blind mice"));//=> 12 blind mice

对象通过toString()方法或者valueOf()方法转换为原始值

javascript语言核心的内置类首先尝试使用valueOf(),再尝试使用toString(),日期类只使用toString()转换

比较操作符:

只有数字和字符串才能真是的执行比较操作,因此不是数字和字符串的都将进行类型转换,valueOf()和toString()进行转换

    var c = "hello world";
    console.log(c.toLowerCase());//转换小写
    console.log(c.toUpperCase());//转换大写
原文地址:https://www.cnblogs.com/JinQing/p/6375343.html