一、关系运算符  (< <= > >= == === != !==)

判断符号左右的两个数据的大小之间的关系,运算结果是一个布尔类型的值

==   只判断值

===即判断值并且判断数据类型

!=   只判断值    只要值不相等,就返回true

!==   判断值和数据类型,值或数据类型不相等,运算结果就为true ,值和数据类型都一样,运算结果为false

布尔值和数字做比较时,true转化成了1,false转化成了0

二、逻辑运算符(&& ||  !)

判断符号左右两端条件的逻辑关系

一般情况下,逻辑运算符都是在做布尔数据类型的逻辑运算(结合关系运算符)

逻辑运算符的值一般也为一个布尔类型的值

三、短路

&&:一遇到false,之后的运算停止,运算结果直接为false

||:一遇到true,之后的运算停止,运算结果直接为true

四、优先级

赋值运算符<逻辑运算符<关系运算符<算数运算符

五、逻辑运算符两边不是布尔类型的数据

运算时会将其它数据类型的值先转为布尔值,再进行运算

数值的0、-0,特殊值的null、undefined、NaN以及空墨盒字符串会转为false,其它的值则会被转为true

11 && 3---------true && true -------3  (比较时都转为了true,返回结果时由于&&左右两边的数据类型都不是布尔值,于是返回了判断时最后一个为true的值)

0 && 3 ----------false && true------0  (比较时左边0转化为了false,短路,直接返回false,由于左边的值不是布尔值,于是返回了0)

11 || 3-------------11 (||运算一遇到true就短路)

33 && 0 && 10----------0

0 || 0 || 20 ----------------20

33 && 5 || 7------------------5

3 && 0 || 6

六、JS是弱类型语言

1、数据类型可以转化

2、变量在赋值时才确定数据类型

七、复合运算符+= -= *= /= %=
八、赋值运算符 =
九、算术运算符 + - * / %
十、三目运算符(所有的if else语句都可以转为三目运算符)
条件 ? 结果1 : 结果2  
判断条件1的布尔值。布尔值为true则返回结果1,布尔值为false则返回结果2
 
JS弱语言的转义

1、JS是一门弱类型的语言,在做加运算时"+"左右两边必须都是Number类型的数据,只要有一边是字符串,就做的时字符串的拼接。

2、通过JS代码获取到的页面中的输入域(textarea\input)的value值,是一个字符串类型的数据,无论输入的是什么

3、JS中除了"+"运算符,其余的运算符(- * / %)运算时,如果符号两端是字符串,会先将字符串转为Number类型,再做数学运算

4、如果一个字符串中含有除数字外的英文字母,做运算转化为Number类型时,字母无法转为数字,最终会得到NaN

5、NaN和“+”做运算,是字符串的拼接,NaN和其余的算术运算符(- * / %)做运算,得到的都是NaN

NaN+"11"  //   "NaN11"

NaN-11     //   NaN

6、NaN 和任何数据做关系运算,得到的都是false

NaN>0   // false

 

"abcd"-12             //  NaN

"abcd1234"-12     //NaN

JS运算符、NaN的更多相关文章

  1. js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框

    js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...

  2. js课程 2-6 js如何进行类型转换及js运算符有哪些

    js课程 2-6 js如何进行类型转换及js运算符有哪些 一.总结 一句话总结: 1.所有类型->布尔类型(为假的情况)有哪些(6种)? 1)字符串('')2)整型(0)3)浮点型(0.0)4) ...

  3. js 运算符的执行顺序

    js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...

  4. JS运算符

    JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...

  5. js 运算符优先级

    在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...

  6. js运算符单竖杠“|”的用法和作用及js数据处理

    js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...

  7. js运算符的一些特殊应用

    作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...

  8. js中NAN、NULL、undefined的区别

    NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值.即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对其 ...

  9. 聊聊js运算符 ‘与(&&)’和‘ 或(||)’

    一,先来几个问题,看给位能都全部答对. var objA1 = {x:1}; var objA2 = {x:2}; var resultA = objA1 && objA2; //请问 ...

随机推荐

  1. Spring-注入

    一.Spring的基本介绍:Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/ ...

  2. php发送邮箱

    /** * 系统邮件发送函数 * @param string $tomail 接收邮件者邮箱 * @param string $name 接收邮件者名称 * @param string $subjec ...

  3. 微信小程序开发的游戏《拼图游戏》

    微信小程序开发的游戏<拼图游戏> 代码直接考进去就能用 pintu.js // pintu.js Page({ /** * 页面的初始数据 */ data: { }, initGame: ...

  4. 泡泡一分钟: Deep-LK for Efficient Adaptive Object Tracking

    Deep-LK for Efficient Adaptive Object Tracking "链接:https://pan.baidu.com/s/1Hn-CVgiR7WV0jvaYBv5 ...

  5. bytes,bytearray

    1.bytes.bytearray ---Python3 引入的! bytes:不可变字节序列,bytearray:字节属组,可变 都是连续的空间. 2.字符串与bytes 字符串是字符组成的有序的序 ...

  6. day22:初识面向对象

    1,类可以理解为是一个模子,可以是代码精简,方便增加实例,方便修改,更加规范,能知道具体的属性,方法,但是不知道具体的值 2,对象有具体的值,属性和技能都是根据类规范的 3, 先有类才有对象 4,面向 ...

  7. 数据结构优化dp

    本以为自己的dp已经成熟了没想到在优化上面还是欠佳 或者是思路方面优化dp还不太行. 赤壁之战 当然 很有意思的题目描述 大体上是苦肉计吧 .盖黄 ... 题意是 求出长度为m的严格上升子序列的个数 ...

  8. spark核心优化详解

    大家好!转眼又到了经验分享的时间了.吼吼,我这里没有摘要也没有引言,只有单纯的经验分享,请见谅哦! 言归正传,目前在大数据领域能够提供的核心计算的工具,如离线计算hadoop生态圈的mr计算模型,以及 ...

  9. jmeter之regular expression extractor ,并循环调用匹配到的多个值

    jmeter之regular expression extractor 官方介绍:http://jmeter.apache.org/usermanual/regular_expressions.htm ...

  10. RoR - Restful Actions

    Index: 用于检索所有条目 # index.json.jbuilder json.array!(@post) do |post| json.extract! post, :id, :title, ...