Js中的假值_ES5中定义的ToBoolean方法强制类型转换后值为false
你不知道的Javascript(中)--ToBoolean
javascript中的值可以分为以下两类:
1.可以被强制类型转换为false的值
2.其他(被强制类型转换为true的值)
假值---以下是js的ES规范中定义了的假值:
- undefined
- null
- false
- +0、-0和NaN
- ""-空字符串
假值的不二强制类型转换结果为false。一般除假值以外的都是真值。
假值对象--封装了假值的对象
eg:
var a=new Boolean(false);
var b=new Boolean(0);
var c=new Boolean("");
【注】规范中规定“所有对象都是真值”,所以即使封装的内容是假值,这些对象依旧是真值。
即:Boolean(a&&b&&c)==>true
【注意】在js代码中会出现对象判断为假的用法,但它实际上不属于javascript语言的范畴。跟浏览器有关。浏览器在某些情况下在常规js语法上自己穿件了一些外来值,这些就是"假值对象"。
eg:
document.all,是一个类数组对象,包含了页面上所有元素,由DOM提供(而不是由js引擎提供)给js程序使用。
用document.all在浏览器上强制类型转换后的结果,可被用来判断是否是ie(老版本的),这种判断也许在以后会因为ie对document.all的支持的结束而出现隐患。
真值--假值列表之外的值
eg:
var a="false"; //字符串false --true
var a="0"; //字符串0 --true
var a="''"; //字符串' --true
Boolean(a&&b&&c)==>true。【注】只有空字符串转换后是false。
eg:
var a=[]; //空数组 --true
var b={}; //空对象 --true
var c=function(){}; //空函数 --true
Boolean(a&&b&&c)==>true
Js中的假值_ES5中定义的ToBoolean方法强制类型转换后值为false的更多相关文章
- 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一. 引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...
- java中可变长参数的定义及使用方法
JAVA中可以为方法定义可变长参数( Varargs)来匹配不确定数量的多个参数,其定义用“...”表示.其实,这类似于为方法传了一个数组,且在使用方法上也和数组相同,如下: public void ...
- OC学习--OC中的类--类的定义,成员变量,方法
1. 类的定义 >用关键字@interface进行声名 @end 结束 >所有的类有一个基类NSobject >类名 也是标示符 第一个字母大写 如果多个字母组成 每个单词的首字母 ...
- 详细理解javascript中的强制类型转换
将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况:隐式的情况称为强制类型转换,JavaScript 中的强制类型转换总是返回标量基本类型值,如字符串.数字和布尔值. 如何理解: 类型转换 ...
- javascript中强制类型转换
javascript开发过程中,强制类型转换一般发生在条件判断和==运算符.其他情况,发生的类型转换(与这两种情况也是基本类似,属于万变不离其宗的范畴),暂不讨论. == 双等运算符 考虑代码: a ...
- C语言中的强制类型转换
先直接放程序吧,后面还有总结. -------------------------------------------start------------------------------------ ...
- 《You dont know JS》强制类型转换
强制类型转换 将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况.隐式的情况被称为强制类型转换 在书中,作者还提出一种区分方式: 类型转换发生在静态类型语言的编译阶段,强制类型转换发生在动 ...
- Python使用property函数定义属性访问方法如果不定义fget会怎么样?
我们知道Python使用property函数定义属性访问方法时的语法如下: 实例属性=property(fget=None, fset=None, fdel=None, doc=None) 而是要@p ...
- Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析
Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...
随机推荐
- 构建第一个Spring Boot2.0应用之集成dubbo上---环境搭建(九)
一.环境: Windows: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE Linux(C ...
- python+selenium之自动生成excle,保存到指定的目录下
进行之自动化测试,想把自动生成的excle保存到指定的目录下.网上百度的代码如下: import xlwt import time time = time.strftime ('%Y%m%d%H%M% ...
- centos开机启动自定义脚本
有些时候我们需要在服务器里设置一个脚本,让他一开机就自己启动.方法如下: cd /etc/init.d vi youshell.sh #将youshell.sh修改为你自己的脚本名 编写自己的脚本后保 ...
- HDU 2602 Bone Collector骨头收藏者(01背包)
题意:收藏骨头. 思路: 常规的01背包. #include <iostream> #define N 1005 using namespace std; int volume[N]; / ...
- UOJ#130 【NOI2015】荷马史诗 K叉哈夫曼树
[NOI2015]荷马史诗 链接:http://uoj.ac/problem/130 因为不能有前缀关系,所以单词均为叶子节点,就是K叉哈夫曼树.第一问直接求解,第二问即第二关键字为树的高度. #in ...
- Django Form 表单
Form 表单功能 生成HTML表单元素检查表单元素的合法性验证如果错误,重复显示表单数据类型转换 Form相关的对象 Widget 渲染成HTML元素的工具Field Form对象中的一个字段For ...
- Linux常用的200个命令总结分类
●目录操作命令(6 个) ls tree pwd mkdir rmdir cd ●文件操作命令(7 个) touch cp mv rm ln find rename ●文件查看及处理命令(21 ...
- 棋盘V(最小费用最大流)
棋盘V 时间限制: 1 Sec 内存限制: 128 MB提交: 380 解决: 44[提交] [状态] [讨论版] [命题人:admin] 题目描述 有一块棋盘,棋盘的边长为100000,行和列的 ...
- Ubuntu下安装pip3和Python的第三方库
一.Ubuntu原有环境说明 无论是在服务器上面还是在我们自己的电脑上面,当我们成功安装了Ubuntu系统之后,系统一般情况下会自带Python2.x和Python3.x环境.比如我在自己的阿里云服务 ...
- Framework7:不会Objective-C,也能开发iOS7应用
摘要:Framework7是一款开源的轻量级HTML框架,用来创建混合或有着iOS7原生体验的Web应用.其包含HTML布局.所有基础界面.动画效果.视图以及简单的自定义样式,让你无需修炼Object ...