JavaScript学习手册(9)

运算符(操作符)

对一个或者多个值进行运算

算数运算符

加,减,乘,除,取模运算

  • 对非Number类型的值进行加法运算时,会将这些值转换为Number然后再运算

  • 任何值和NaN做加法运算都得到NaN

  • 字符串相加,则将字符串拼接在一起

  • 任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼接

技巧:为任意的数据类型 + “ ” ,即可将其转换为字符串。(隐式类型转换,浏览器自动完成)

​ 为一个值 -0 ,* 1, / 1,来转换为Number(隐式类型转换,浏览器自动完成)

​ 对一个其他的数据类型使用 + ,来将其转换为number

一元运算符

  • +正号 -负号
  • 对于非Number类型的值,先转换为Number,然后再运算

自增和自减

自增:使变量在自身的基础上增加 1

​ 对于一个变量自增以后,原变量的值会立即自增 1 。

自增分类:

1.后++(a++) 和 前++(++a)

后++:值等于原变量的值(自增前的值)

前++:值等于原变量新值(自增后的值)

2.后-- (a–) 和 前-- (–a)

逻辑运算符

  • 与(&&) :两个值都为true,则返回true。

    ​ 只要有一个false,就返回false。(如果两个值都是true则返回true,只要有一个false,就返回false)

    ​ 对于非布尔值进行与运算时,

    ​ 会先将其转换为布尔值,然后再运算,并且返回原值。

    ​ 如果两个值都为true,则返回后边的

    ​ 如果两个值中有false,则返回靠前的false

         result = 0  &&  2; //0
         result = 2  &&  0; //2
         result = NaN && 0; //NaN
    ​    result = 0 && NaN; //0
    
  • 或(||) :如果第一个值为true,则直接返回第一个值。(与运算正好相反)

    ​ 如果第一个值为false,则直接返回第二个值。(与运算正好相反)

  • 非(!) :如果对一个值进行两次取反,它不会变换。

    ​ 如果对非布尔值进行计算,则会将其转换为布尔值,然后再取反。

    ​ 技巧:可以为一个任意数据类型两次取反操作,将其转换为布尔值。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IYUHASJy-1619919323464)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1609248256959.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xqovakxn-1619919323467)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1609248320684.png)]

赋值运算符

可以将符号右侧的值给符号左侧的变量( = )

+= -= *= /= %/

关系运算符

大于号,大于等于,小于,小于等于,

  • 比较两个值之间的大小,关系成立返回true,关系不成立则返回false

  • 对于非数值进行比较时,会将其转换为数字,然后再比较。

  • 任何值和NaN做任何比较都是false (10<=“hello”;//false)

         console.log(1 > true); //false
    ​    console.log(1 >= true) //true
         console.log(1>"0");//true
         console.log(10>null);//true
    

    对于非数值进行比较时,会将其转换为数字然后再比较。

    如果符号两侧的值都是字符串,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码。

    比较字符编码时是一位一位进行比较。

    在比较两个字符串型的数字时,一定要转型。

Unicode编码表

在网页中写法:&#编码(十进制编码)

相等运算符( )

相等( == )

如果相等返回true,否则返回false

  • 当使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转化为相同的类型,然后再比较。
console.log(“null==0”);//false
console.log("true=="1");//true
console.log("1"==1);//true
  • undefined衍生自null,所以这两个值做相等判断时,会返回true。
console.log(undefined==null);//true
  • NaN不和任何值相等,包括本身。

**注意:**可以通过isNaN()函数来判断一个值是否是NaN。

var    a=NaN;
console.log(isNaN(a));

不相等( != )

  • 不相等也会对变量进行自动的类型转换,如果转换后也相等,返回false

全等( === )

  • 不会做自动类型转换,如果值的类型不同,直接返回false

不全等( !== )

  • 不会做自动类型转换,如果值的类型不同,直接返回true

条件运算符(三元运算符)

条件表达式 ? 语句1:语句2;

运算符的优先级

逗号分隔多个语句,一般声明用于多个变量。

优先级 运算符 说明 结合性
1 [].() 字段访问、数组索引、函数调用和表达式分组 从左向右
2 ++ – -~!delete new typeof void 一元运算符、返回数据类型、对象创建、未定 义的值 从右向左
3 *、/、% 相乘、相除、求余数 从左向右
4 +、- 相加、相减、字符串串联 从左向右
5 <<、>>、>>> 左位移、右位移、无符号右移 从左向右
6 <、<=、>、>=、instanceof 小于、小于或等于、大于、大于或等于、是否 为特定类的实例 从左向右
7 、!=、=、!== 相等、不相等、全等,不全等 从左向右
8 & 按位“与” 从左向右
9 ^ 按位“异或” 从左向右
10 | 按位“或” 从左向右
11 && 短路与(逻辑“与”) 从左向右
12 || 短路或(逻辑“或”) 从左向右
13 ?: 条件运算符 从右向左
14 =、+=、-=、*=、/=、%=、&=、|=、^=、<、<=、>、>=、>>= 混合赋值运算符 从右向左
15 , 多个计算 按优先级计算,然后从右向左

JavaScript学习手册(9)_第1张图片
每日一句

愁人苦夜长,志士惜日短。

你可能感兴趣的:(笔记,操作手册,橘子超酸辣,javascript,webkit,前端)