八.表达式

117 阅读2分钟

表达式

表达式是代码的最小的单位;表达式组成语句,多个语句组成了程序。

原始表达式

原始表达式包含直接量、关键字和变量名

image.png

数组初始化表达式

1)数组直接量:允许有逗号的结尾,故[,,]、[1,,]、[,1,]这三种情况JS引擎会认为最后一个逗号是结尾的逗号,所以就认为只有两个元素;而[,,1]长度为三,最后一个逗号就不是结尾了,则[,,1,]的长度仍然为3。

2)用系统内置函数创建数组:当没有传入参数时就是一个空数组;当传入一个参数时,参数就是数组的length属性值;当传入两个及两个以上的参数时,传入的所有参数是数组中的元素。

image.png

image.png

对象初始化表达式

对象的属性是逗号分隔开的表达式的值;属性包括属性名和属性值,属性名和属性值之间用冒号隔开。

image.png

image.png

函数直接量

声明式和定义式

image.png

成员访问表达式

引用数据通过["key"]的形式访问成员或者通过点语法

image.png

image.png

ps:对象用中括号访问时,注意加引号否则为变量。

调用表达式

取值(只要能得到值的表达式都是取值)得到了一个函数然后加小括号可以调用函数;取值得到的不是函数会报错。

image.png

image.png

算术表达式

算术运算符:加减乘除取余,+-*/%

算术运算符号优先级:等级高得先执行,等级相同的从左到右依次执行。

image.png

如果操作数不是数字的基本数据,而是字符串,布尔值,null,undefined,会调用Number()将其转化为数值再进行运算。

不是数字的字符串会转换为NaN,如果有一个操作数是NaN其结果都是NaN。

image.png

减乘除取余的运算结果全都是number类型,但是加不一定。

加号运算特殊情况

+:数字相加或字符串连接或false+true

image.png

image.png

true会转换1,false转换为0,再两者相加就为1

1)如果其中一个操作数是引用类型,优先调用valueOf求值后可以进行加法运算,则加起来,不行再调用toString方法,再进行字符串拼接;

2)如果其中一个操作数是字符串的话,则另一个也会转成字符串再拼接;

3)如果两个操作数都是数字,则进行加法运算。

image.png

image.png

数组先调用valueOf(),返回数组本身,再调用toString(),空数组则得到一个空字符串;

对象先调用valueOf(),返回对象本身,再调用toString(),返回原始数据类型,即对象字符串[object Object];

基本数据与字符串相加时,其对应字符串

image.png