JS运算,运算符

 1.当对非number类型的值进行运算:
     1>会将这些值转换为Number然后再运算  
                   result = true + 1 //2 result = 2 + null;//2
      2>任何值和NaN做运算结果都是NaN   
                  result=2+NaN;//NaN                                                           
      3> 如果对两个字符串进行加法,则会进行拼块操作 
                  result="123"+"456";//"123456"     
      4>任何值和字符串相加,都会先将值转化为字符串再拼接 
                  result =123+"1";//"1231"  
      5>可以将任意数据 + 一个 " "即可将其转为String,这是一种隐式的类型转 
        换,由浏览器览器自动完成,实际上它也是调用String()函数  
        var c =123;  c=c + " ";//"123"  result=1+2+"3";//"33"  result="1"+2+3;//"123"

 2.  100-true//99  100-"1"//99

 3.   2*"8";//16  2*NaN//NaN 2*undefined//NaN  2*null//0 

      1>任何数做 - * / 运算都会自动转化为Number 可以利用这一特点做隐式的 
          类型转换 -0 *1  /1来将其转化为Number,原理和Number()函数一样,用 
          起来更加简单

      2>% 取模运算(取余数)

4.  一元运算符,只需要一个操作数 

      1> + 正号,正号不会对数字产生任何影响  
           - 负号 ,负号可以对数字进行负号的取反  

      2>对于非Number类型的值,它会将其先转化为 Number,然后在运算,可 
          以对一个其他的数据类型使用+,来将其转化为 number,它的原理和 
          number()函数一样         1+ +“2” +3;//6

5.自增 ++ 
      1>通过自增可以使变量在自身基础上增加1

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

      3>自增分为后加加(a++)  前加加(++a),无论是哪种,都会立即使原变量的 
        值自增1,

      4>不同的是++a和a++的值不同
                     a++的值等于原变量的值(自增前的值), 
                     ++a的值原 变量新值(自增后的值)  
                     var d=20; d++ +  ++d + d;//20+22+22

6.自减 --  
     1>通过自减可以使变量在自身基础上减1  

     2>自减分为后减减(a--)  前减减(--a),无论是哪种,都会立即使原变量的值 
          自减1, 

     3>不同的是--a和a--的值不同
                   a--的值等于原变量的值(自减前的值)
                   --a的值原变量 新值(自减后的值) 

7.逻辑运算符 
     1>  !非    所谓非运算就是对布尔值进行取反操作
                      true变false,false变true
                      如果对一个值进行两次取反,他不会改变

                      如果对非布尔值进行取反,则会将其转化为布尔值,然后再取 
                      反,所以我们可以利用该特点,来将一个其他的数据类型转化为 
                      布尔值,可以为任意一个数据类型取两次反,来将其转化为布尔 
                      值,原理和Boolean()函数一样
                                     var a = "hello";
                                     a = !!a; //true

     2> && 与   可以对符号两侧的值进行与运算并返回结果
                      只有两端的值都为true时,才会返回true。只要有一个false就会返回false。

                      与是一个短路的与,如果第一个值是false,则不再检查第二个值,第一个true会检查第二个

                      对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值
                         规则:
                            1.如果第一个值为false,则返回第一个值    0&&1;//0
                            2.如果第一个值为true,则返回第二个值  5&&6;//6  

     3> ||  或   可以对符号两侧的值进行或运算并返回结果
                     只有两端都是false时,才会返回false。只要有一个true,就会返回true。

                     或是一个短路的或,如果第一个值是true,则不再检查第二个值,第一个false会检查第二个

                     对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值
                         规则:    
                            1.如果第一个值为true,则返回第一个值   2||1;//2
                            2.如果第一个值为false,则返回第二个值  NaN || 1;//1

 8.赋值运算符:
                       = +=  -= *= /= %=

 9.关系运算符
                     关系运算符用来比较两个值之间的大小关系的 
                         >= > = <= <
                     如果关系成立则返回true,关系不成立则返回false。

                     如果比较的两个值是非数值,会将其转换为Number然后再比较。

                     任何值和NaN作比较都是false

                    如果比较的两个值都是字符串,此时会比较字符串的Unicode编 
                    码,而不会转换为Number
                                 一位一位进行比较,两位一样,则比较下一位,所以使用 
                                 它来对英文进行排序,比较中文没有意义
                                 "11"<"5";//true(第一位先比较即是1和5比较编码大小)

 10.相等运算符
    ==
        - 相等,判断左右两个值是否相等,如果相等返回true,如果不等返回false
        - 相等会自动对两个值进行类型转换,如果对不同的类型进行比 
          较,会将其转换为相同的类型然后再比较,转换后相等它也会返回true

    !=
        - 不等,判断左右两个值是否不等,如果不等则返回true,如果相等则返回false
        - 不等也会做自动的类型转换。
        
    ===
        - 全等,判断左右两个值是否全等,它和相等类似,只不过它不会进行自动的类型转换,
          如果两个值的类型不同,则直接返回false
            
    !==
        - 不全等,和不等类似,但是它不会进行自动的类型转换,
          如果两个值的类型不同,它会直接返回true
        
    特殊的值:
        - null和undefined
            - 由于undefined衍生自null,所以null == undefined 会返回true。
                但是 null === undefined 会返回false。
                
        - NaN
            - NaN不与任何值相等,包括它自身 NaN == NaN //false
            
        - 判断一个值是否是NaN
            - 使用isNaN()函数

11.条件运算符(三元运算符):
        - 语法:条件表达式?语句1:语句2;
        - 执行流程:
            先对条件表达式求值判断,
                如果判断结果为true,则执行语句1,并返回执行结果
                如果判断结果为false,则执行语句2,并返回执行结果

            如果条件表达式的求值结果是一个非布尔值,会将其转化为布尔值再运算

12  ,  运算符  
        使用逗号可以分割多个语句,一般可以在申明多个变量时使用
                  var a, b,c;

        可以同时申明多个变量并赋值
                  var a=1,b=2,c=3;          

13.运算符优先级:
    - 和数学中一样,JS中的运算符也是具有优先级的,
        比如 先乘除 后加减 先与 后或
                       var result 1||2&&3;//1
    - 具体的优先级可以参考优先级的表格,在表格中越靠上的优先级越高,
        优先级越高的越优先计算,优先级相同的,从左往右计算。

    - 优先级不需要记忆,如果越到拿不准的,使用()来改变优先级。
优先级.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335