JavaScript 检测值
了解常见的真值和假值,可以增强判断能力。在使用if判断时,提升编码速度。
了解常见的检测和存在,一样可以增强判断能力,而且是必须掌握的。
数组和对象被视为真值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
var shoppingCart=[ '鞋' , '连衣裙' , '皮带' ]; println(Boolean(shoppingCart)); var person={}; //字面量创建对象 // 设置字面量对象属性 person.name= 'huangshiren' ; person.age=58; person.appetite=3; person.eat= function (){ document.write( '正在吃饭' ); } println(Boolean(person)); function println(a){ document.write(a+ '<br>' ); } |
严格等于下的特殊值
false与0与''
表达式 | 结果 |
(false==0) | true |
(false===0) | false |
(false=='') | true |
(false==='') | false |
(0=='') | true |
(0==='') | false |
示例
1
2
3
4
5
6
7
8
9
10
|
println( false ==0); println( false ===0); println( false == '' ); println( false === '' ); println(0== '' ); println(0=== '' ); function println(a){ document.write(a+ '<br>' ); } |
null与undefined
null和undefined都是假值。null和undefined相等,undefined和undefined相等,null和null相等。
表达式 | 结果 |
(undefined==null) | true |
(null==false) | false |
(undefined==false) | false |
(null==0) | false |
(undefined==0) | false |
(undefined===null) | false |
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
println(undefined== true ); println(undefined=== true ); println(undefined== false ); println(undefined=== false ); println(undefined== null ); println(undefined=== null ); println(undefined==0); println(undefined===0); println( null ==0); println( null ===0); println( null == false ); println( null === false ); println( null == true ); println( null === true ); function println(a){ document.write(a+ '<br>' ); } |
NaN和null
NaN为假值,NaN不等于任何值
表达式 | 结果 |
(NaN==null) | false |
(NaN==NaN) | false |
1.因为数组和对象都在内存里储存了数据,所以为真值
JavaScript 检测值的更多相关文章
- Javascript检测值
检测原始值用typeof javascript有五种原始类型,分别为字符串.数字.布尔值.null和undefined 判断一个值是什么类型的字符串,可以通过typeof typeof variabl ...
- JavaScript检测之basevalidate.js
上篇文章「JavaScript检测原始值.引用值.属性」中涉及了大量有用的代码范例,为了让大家更方便的使用这些代码,博主特意把这些代码重新整理并托管到 GitHub,项目地址是:https://git ...
- 用 JavaScript 检测浏览器在线/离线状态(JavaScript API — navigator.onLine)
如今HTML5 移动应用或 Web app 中越来越普遍的使用了离线浏览技术,所以用 JavaScript 检测浏览器在线/离线状态非常常见. 无论浏览器是否在线,navigator.onLine 属 ...
- Javascript检测浏览器对CSS属性的支持 /* supports */
//检测浏览器对CSS属性的支持 supports = (function() { var div = document.createElement('div'), vendors = 'Khtml ...
- JavaScript中值类型和引用类型的区别
JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和布尔值.此外,JavaScript中还有两个特殊的原始值:null和undefined,它们既不是数字也不 ...
- javascript检测当前浏览器是否为微信浏览器
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- 如何用Javascript检测到所有的IE版本
如何用Javascript检测到所有的IE版本 function GetIEVersion() { var sAgent = window.navigator.userAgent; var Idx = ...
- JavaScript检测数据类型
JavaScript检测数据类型 标签(空格分隔): JavaScript function valType(value) { return Object.prototype.toString.cal ...
- JavaScript里值比较的方法
JavaScript里值比较的方法 参考资料 一张图彻底搞懂JavaScript的==运算 toString()和valueof()方法的区别 Object.is 和 == 与 === 不同 == 运 ...
随机推荐
- office+visio2016版本一同安装说明
安装所需软件: Office或者visio镜像 比如:cn_visio_professional_2016_x86_x64_dvd_6970929.iso 下载网址:http://pan.baidu. ...
- VUE cli 4.x下配置多页面以及同时配置支持element-ui及mint-ui并且优化首页文件大小。
场景,公司的一个小型项目,需同时支持移动端和PC端.最开始考虑做两个独立的项目.但后来考虑到总共只有4个功能页面,布署起来相对麻烦.所以决定做在一个项目里. 1.升级vue-cli到4.x npm i ...
- E:only-child
E:only-child 语法: E:only-child { sRules } 说明: 匹配父元素仅有的一个子元素E.大理石机械构件维修 要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高 ...
- Flutter布局----弹性布局 (Flex)
弹性布局(Flex) 弹性布局允许子组件按照一定比例来分配父容器空间.弹性布局的概念在其它UI系统中也都存在,如H5中的弹性盒子布局,Android中的FlexboxLayout等.Flutter中的 ...
- @Async 异步注释 @EnableAsync
@SpringBootApplication @ComponentScan(basePackages = "com.fddsfsg") //@EnableSwagger2 @Ena ...
- Apache 下载+安装
1.官网下载Apache 官网地址:https://httpd.apache.org/ 点击Download 上面那段话,大致意思:很高兴Apache服务器2.4.18版本的发布.在2.4.x的分支的 ...
- .net Core使用 MongoDB
1.安装mogodb windows版本下载地址:https://www.mongodb.com/download-center/v2/community 查看mongod.conf文件,找到绑定的I ...
- 使用setUncaughtExceptionHandler在线程外面捕获异常
package com.dwz.concurrency.chapter11; /** * Thread的run方法是不能throw出异常的,只能在日志或者console中打印出来 */ public ...
- 为ubuntu找个能用的桌面,顺便进行适当的改造
最近,开始玩ros,结果官方推荐ubuntu linux,虽然都是差不多的linux,无非就是软件包形式不同而已.但是,个人对ubuntu的unity桌面实在是没有爱,最让人无语的是,kubuntu无 ...
- Mac 内存清理
1.清理前后的对比 清理前: 清理后: 内存多了20G 2.思路 首先,我先看了很多人的经验贴,按照他们的路子查到最后,并没有找到他们指出的大文件. 很显然,Mac的使用方式不同,其内存分配肯定也会不 ...