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 和 == 与 === 不同 == 运 ...
随机推荐
- 11 - Vue模板语法
Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. 所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML ...
- 成熟度等级CMM
软件能力成熟度模型 (Capability maturity model,CMM) CMM是目前国际上使用流行的一种软件生产过程行业标准模型,可定义.评价软件开发过程的成熟度,并提供提高软件质量的指导 ...
- yii行为和过滤器
行为是对类的功能进行了扩展,针对开闭原则,为了类的扩展而生,不去修改类原有的代码. yii的行为需要继承yii\base\Behavior,这就好比你要给人安装一个胳膊,这个胳膊得是人的,而不能是老虎 ...
- HR# 5题解
T1 我傻了 前20个数暴力开桶记录,后面的每次暴力统计. #include<bits/stdc++.h> #define R register int using namespace s ...
- P3474 [POI2008]KUP-Plot purchase
思路:单调栈 提交:>5次 错因:单调栈写法有问题+前缀和写错 题解: 若有\(>=k\ \&\&\ <=2\times k\)的点,显然直接选他就行了. 否则,我们 ...
- AtomicInteger如何保证线程安全以及乐观锁/悲观锁的概念
众所周知,JDK提供了AtomicInteger保证对数字的操作是线程安全的,线程安全我首先想到了synchronized和Lock,但是这种方式又有一个名字,叫做互斥锁,一次只能有一个持有锁的线程进 ...
- 2018 Nowcoder Multi-University Training Contest 2
目录 Contest Info Solutions A. run D. monrey G. transform H. travel I. car J. farm Contest Info Practi ...
- JavaScript中BOM的重要内容总结
一.BOM介绍 BOM(Browser Object Model),浏览器对象模型: 用来操作浏览器部分功能的API: BOM由一系列的对象构成,由于主要用于管理窗口和窗口之间的通讯,所以核心对象是w ...
- 创建jQuery节点对象
现在的年轻人,经历旺盛,每天都熬夜,今天又晚了,现在才更新博客,今天更新jquery入门之对节点的操作,内容简单好掌握.认真的燥再来吧. 1.$("<li class="li ...
- CF1214D
CF1214D 题意: 给你一个 $ n \times m $ 的矩阵,求最少用多少个障碍,将 $ (1,1) $ 到 $ (n,m) $ 的路径堵死. 题意: 因为可以将起点两边堵死,所以答案最多是 ...