一、算数运算符
1、运算符也叫操作符。通过运算符可以对一个或多个值进行运算,并获取运算结果。
比如:typeof 就是运算符,可以获得一个值的类型,他会将该值的类型以字符串的形式返回
(number、string、boolean、undefined、object)。
2、算术运算符
当对非Number类型的值进行运算时,会将这些值转换为Number然后再进行运算。
任何值和NaN做运算都得NaN。
① + ——可以对两个值进行加法运算,并将结果返回。
如果对两个字符串进行加法运算,则会做拼串操作,会将两个字符串拼接位一个字符串并返回结果。
任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。
——我们可以利用这一特点,讲一个任意的数据类型转换为String,只需要为任意的数据类型 + 一个 “”(空串),即可将其转换为String,这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用 String()函数。
② - ——可以对两个值进行减法运算,并将结果返回。
③ * ——可以对两个值进行乘法运算,并将结果返回。
④ / ——可以对两个值进行除法运算,并将结果返回。
⑤ % ——取模运算(取余数)。
⑥ 任何值做 - * / 运算时都会自动转换为Number。我们可以利用这一特点做隐式的类型转换,可以通过为一个值 -0 、 *1 、 /1 来将其转换为Number,原理和Number()函数一样,使用起来更加简单。
二、一元运算符
1、一元运算符,只需要一个操作数。
2、有两个运算符:
+ —— 正号,不会对数字产生任何影响。
- —— 负号,可以对数字进行负号的取反。
3、对于非Number类型的值,它会将其先转换为Number,然后再运算。可以对一个其他的数据类型使用 + ,来将其转换为number,它的原理和Number()函数一样。
三、自增和自减
1、自增 ++
① 通过自增可以使变量在自身的基础上增加1。
② 对于一个变量自增以后,原变量的值会立即自增1。
③ 自增分成两种:后++(a++)和前++(++a)。
无论是 a++ 还是++a ,都会立即使原变量的值自增1。
不同的是 a++ 和 ++a 的值不同 —— a++ 的值等于原变量的值(自增前的值)
—— ++a 的值等于新值(自增后的值)
2、自减 --
① 通过自减可以使变量在自身的基础上减1。
② 自减分成两种: 后 --(a--) 和 前 --(--a)。无论是 a-- 还是 --a 都会立即使原变量的值自减1。
不同的是 a-- 和 --a 的值不同 —— a-- 是变量的原值(自减前的值)
—— --a 是变量的新值(自减后的值)
四、逻辑运算符(JS中提供了三种逻辑运算符)
1、非 !
① ! 可以用来对一个进行非运算。
② 所谓的非运算就是对一个布尔值进行取反操作,即 true 变成 false ,false 变成 true 。
③ 如果对于一个值进行两次取反,它不会变化。
④ 如果对非布尔值进行运算,则会将其转换为布尔值,然后再进行取反操作。所以我们可以利用该特点,讲一个其他的数据类型转换为布尔值:可以为一个任意数据类型去两次反,将其转换为布尔值,原理和 Boolean()函数一样。
2、与 &&
① && 可以对符号两侧的值进行与运算并返回结果。
② 运算规则:
—— 两个值中只要有一个为 false 就返回 false
—— 只有两个值都为 true 时,才会返回 true
③ JS中的“与”属于短路的与,如果第一个值为 false ,则不会看第二个值。
3、或 ||
① || 可以对符号两侧的值进行或运算并返回结果。
② 运算规则:
—— 两个值中只要有一个 true ,就返回 true
—— 如果两个值都为 false ,才会返回 false
③ JS中的“或”运算时域短路的或,如果第一个值为 true ,则不会检查第二个值。
4、非布尔值的与或运算
① 对于非布尔值的与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值。
② 与运算:
—— 如果第一个值为 true ,则必然返回第二个值
—— 如果第一个值为 false ,则直接返回第一个值
③ 或运算:
—— 如果第一个值为 true ,则直接返回第一个值
—— 如果第一个值为 false ,则返回第二个值
五、赋值运算符
1、 = 可以将符号右侧的值赋值给左侧的变量。
2、 += a+=5等价于a=a+5。
3、 -= a-=5等价于a=a-5。
4、 *= a*=5等价于a=a*5。
5、 /= a/=5等价于a=a/5。
6、 %= a%=5等价于a=a%5。
六、关系运算符
1、通过关系运算符可以比较两个值之间的大小关系,如果关系成立返回 true ,如果关系不成立返回 false 。
2、 > 大于号
—— 判断符号左侧的值是否大于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。
3、 >= 大于等于号
—— 判断符号左侧的值是否大于或等于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。
4、 < 小于号
—— 判断符号左侧的值是否小于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。
5、 <= 小于等于号
—— 判断符号左侧的值是否小于或等于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。
6、非数值的情况
① 对于非数值进行比较时,会将其转换为数字然后再进行比较。
② 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码。
③ 比较字符编码时是一位一位进行比较的,如果两位一样,则比较下一位,所以借用它来对英文进行排序,比较中文没有意义。
7、任何值和NaN做任何比较都是 false 。
8、如果比较的两个字符串是数字,则可能会得到不可预期的结果,所以在比较两个字符串的数字时,一定要转型。
七、Unicode编码表
1、在JS中的字符串中需要使用转义字符输入Unicode编码。
语法格式: \u 四位编码 —— 编码为16进制
2、在网页中使用Unicode编码
语法格式: &#编码; —— 编码为10进制
八、相等运算符
1、相等运算符用来比较两个值是否相等,如果相等会返回 true ,否则会返回 false 。
2、使用 == 来做相等运算
—— 当使用 == 来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,然后再比较。
3、 undefined 衍生自 null ,所以这两个值做相等判断时,会返回 true 。
4、 NaN不和任何值相等,包括他本身。
5、判断某个变量的值是否为 NaN ,可以通过 isNaN()函数 来判断,如果该值是 NaN 则返回 true ,否则返回 false 。
6、使用 != 做不相等运算
—— 不相等用来判断两个值是否不相等,如果不相等返回 true ,相等返回 false 。
—— 不相等也会对变量进行自动的类型转换,如果转换后相等也会返回 false 。
7、使用 === 来做全等运算
—— 用来判断两个值是否全等,他和相等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同直接返回 false 。
8、使用 !== 来做不全等运算
—— 用来判断两个值是否不全等,和不等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同直接返回 true 。
九、条件运算符
1、条件运算符也叫三元运算符。
2、语法:
条件表达式?语句1:语句2;
3、执行流程:条件运算符在执行时,首先对条件表达式进行求值,如果该值为 true ,则执行语句1,并返回执行结果;如果该值为 false ,则执行语句2,并返回执行结果。
4、如果条件的表达式的求值结果使一个非布尔值,会将其转换为布尔值然后再运算。
十、运算符优先级
1、和数学一样,在JS中运算符也有优先级,比如:先乘除,后加减。
2、JS中运算符优先级表如下,在表中越靠上优先级越高,优先级越高越先计算,如果优先级一样,则从按照表达式左往右计算。如果遇到优先级不清楚可以使用()来改变优先级。
十一、代码块
1、我们的程序是由一条一条语句构成的,语句是按照自上向下的顺序一条条执行的。
2、在JS中可以使用 { } 来为语句进行分组。同一个 { } 中的语句我们称为是一组语句,他们要么都执行,要么都不执行。
3、一个 { } 中的语句我们也称为一个代码块,在带那块的后边就不用再编写 ; 了。
4、在JS中的代码块,只是具有分组的作用,没有其他的用途,代码块内的内容在外部是完全可见的。
本文分享到此结束,下一节继续分享JavaScript初级学习的语句的内容。欢迎大家一同讨论学习。