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

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

==   只判断值

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

!=   只判断值    只要值不相等,就返回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. springboot/Mybatis整合

    正题 本项目使用的环境: 开发工具:Intellij IDEA 2017.1.3 springboot: 1.5.6 jdk:1.8.0_161 maven:3.3.9 额外功能 PageHelper ...

  2. centos7查看网卡UUID

    https://blog.csdn.net/kepa520/article/details/50222049 查看网卡UUID nmcli con show 查看mac地址 nmcli device ...

  3. 前言|Elena

    2019.3.19更新置顶 2018.11.5更新置顶 2018.9.7更新置顶 -这里写下置顶- 嗨嗨嗨 这里AlenaNuna,偏远小渔村oi蒟蒻一只,各大题库id有Elena/AlenaNuna ...

  4. C++ 第二次实验

    实验内容: 1.函数重载编程练习 编写重载函数add(),实现对int型,double型,Complex型数据的加法.在main()函数中定义不同类型 数据,调用测试. #include <io ...

  5. Convert List<Entity> to Json String.

    public static string ToJson(this object obj, string datetimeformats) {     var timeConverter = new I ...

  6. 国际快递查询接口JAVA示例-trackingmore

    国际快递查询接口 国际快递查询接口的需求量很大,例如一些跨境电商B2C网站.快递查询APP.快递柜.跨境物流公司等都会需要用到国际快递接口. 目前市面上的快递接口,以国内快递居多,有些虽然号称支持多家 ...

  7. jeecg富文本编辑器增加字体(仿宋)

    jeecg富文本编辑器增加字体(仿宋) 温馨提示:jeecg 提供了 uedit 富文本的实现,如下针对的是 uedit 增加仿宋字体示例. 主要修改三个文件:plug-in\ueditor\uedi ...

  8. Linux的top命令学习【转载】

    转自:https://blog.csdn.net/sanshiqiduer/article/details/1933625 1.top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的 ...

  9. linux云计算面试知识汇总,文件共享--vsftpd秘籍

    随着天气的升温快要步入夏天,紧随着面试季来喽,想知道Linux运维面试时都会被问到哪些问题吗?特整理出这些资料给大家参考学习,据说知道全部答案的人,月薪能过万,还不快快码下,以备后用! 今天小编将继续 ...

  10. VMware虚拟机共享宿主机硬盘步骤

    1.打开设置 2. 进去设置后,选择选项选项卡,启用文件夹共享,添加文件夹即可 注:虚拟机安装完成后我先装了 VMwareTools,然后进行的共享操作,貌似不安装时无法启用第三步,即 总是启用 按钮 ...