JS运算符、NaN
一、关系运算符 (< <= > >= == === != !==)
判断符号左右的两个数据的大小之间的关系,运算结果是一个布尔类型的值
== 只判断值
===即判断值并且判断数据类型
!= 只判断值 只要值不相等,就返回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、变量在赋值时才确定数据类型
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的更多相关文章
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- js课程 2-6 js如何进行类型转换及js运算符有哪些
js课程 2-6 js如何进行类型转换及js运算符有哪些 一.总结 一句话总结: 1.所有类型->布尔类型(为假的情况)有哪些(6种)? 1)字符串('')2)整型(0)3)浮点型(0.0)4) ...
- js 运算符的执行顺序
js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...
- JS运算符
JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...
- js 运算符优先级
在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...
- js运算符单竖杠“|”的用法和作用及js数据处理
js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...
- js运算符的一些特殊应用
作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...
- js中NAN、NULL、undefined的区别
NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值.即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对其 ...
- 聊聊js运算符 ‘与(&&)’和‘ 或(||)’
一,先来几个问题,看给位能都全部答对. var objA1 = {x:1}; var objA2 = {x:2}; var resultA = objA1 && objA2; //请问 ...
随机推荐
- IPV6配置
云友“学渣王 ”在帖子里提到需要为阿里云ECS配置IP6地址,根据网上的一些信息,写此例. 如果要求是FQDN地址,请登录到您的域名控制面板,设置一条AAAA记录到新设置的IPv6隧道地址. 在阿 ...
- js中级6
1.动画 (1)Css样式提供了运动 过渡属性transition 从一种情况到另一种情况叫过渡 transition:time linear de ...
- servlet实现简单的登录功能
1.登录页面 Login.html <%@page contentType="text/html" pageEncoding="UTF-8"%> & ...
- 网络流 ek
hdu3549 求最大流果题 ek算法 先bfs出一条流 然后通过不断地添加增广路 得到最大流(证明在算法书上都有) 增加了一个流 就加反向边 允许程序通过走方向边的方式进行“回滚” i^1 = i+ ...
- OSS内文件如何设置为无时间限制的下载链接
OSS内文件如何设置为无时间限制的下载链接 想把一些文件上传到OSS里,把OSS当网盘用,做成分享的下载链接 发现获取的链接都是有时间限制的 有没有取消这个时间限制的功能或者方法 请将object的权 ...
- NTSC PAL 介绍
NTSC-J是日本地区的模拟 电视系统和视频显示标准,于2011年7月24日在全国47个县中的44个地区停止运营.模拟广播于2012年3月31日在2011年Tōhoku摧毁的三个县停止地震和海啸(岩手 ...
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165225
2018-2019-2 <网络对抗技术>Exp0 Kali安装 Week1 20165225 - 上Kali官网选择Kali Linux 64 bit的torrent,用迅雷解压即可 安装 ...
- static与volatile的用法
static 1.概述 static 声明的变量在C语言中有两方面的特征: 1).变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值.这一点是它与堆栈变量和堆变量的区别 ...
- VUE-011-通过 v-if 和 v-for 实现特定值的列表循环匹配,并显示满足匹配条件的值
前端页面开发过程中,经常遇到服务端返回的数据中,存在一些需要转义的表单项.比如,员工信息中的学历,假设研究生学历的代码是101(或10001),则数据库中对应字段存放的是 101(或10001),而非 ...
- C++ opencv调用resize修改插值方式遇到的坑
opencv提供的热死则函数原型如下:void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0 ...