转换为布尔型
用两次非运算(!):
用布尔型的构造函数:
1 |
new Boolean(5) == > true |
值转换为布尔类型为false:0,+0,-0,NaN,""(空字符串),undefined,null
除上面的值其他值在转换以后为true,需要特别提到的是:"0",new Object(),function(){}
转换为字符串类型
加上空字符串"":
用字符串构造函数:
1 |
new String(123) = "123". |
需要特别注意的转化:
3 |
-Infinity ==>"-Infinity" |
4 |
+Infinity ==>"+Infinity" |
6 |
undefined ==> "undefined" |
8 |
new Object() ==> "[object Object]" |
9 |
function(){} ==> "function(){}" |
转换为数值型
取正(+), 减零 (-0), 乘一,(*1),除以一(/1),取负(-,这个得到相反的值):
用构造函数Number();
1 |
new Number("123") = 123 |
几个需要特别注意的转化:
11 |
new function(){} ==> NaN |
隐式类型转换
二元加法运算(+):如果两个操作数中有一个是String类型,将把两个操作数转换为String类型再相加。如果两个操作数中没有字符串类型,那么将把两个操作数转换为数值类型再做运算。
4 |
true + undefined = NaN (因为undefined转换为数值为NaN,所有结果为NaN) |
5 |
true + null = 1 (null转换为数字是0) |
6 |
"123" + null = "123null" (包含字符串将转化为字符串相加) |
7 |
"123" + undefined = "123undefined" (undefined同样适用) |
8 |
1 + 2 + "123" = "3123" (1+2是首先按照数值型计算的) |
二元减乘除运算(-*/):因为只有数值类型才有 - * / 运算,所以会先将两个操作数转换为数值型再做运算。
一元取正(+),取负运算符(-):取正或者取负都是针对数值型的运算,所以会将操作数转换为数值型再做运算。
一元非(!)运算符:非运算符需要将操作数转化为布尔类型。
逻辑运算符(&&)和(||):
在&&或者||的两侧被判断的时候会被转为布尔类型进行判断,但是我在测试的时候却发现一个有趣的事情。
&&运算符:如果有一个项为false,那么表达式返回false,如果所有的项都不为false,那么表达式返回最右边一个项的原始值。
123 && 23 && 45 返回 45,而不是我们想象中的true。所以如果有 123 && 23 == true 那么应该是false。至于if(123 && 23) 认为是true那应该是把23转换为布尔类型了。
||运算符:对 || 测试的结果也和我想象的不一样,|| 返回第一个转换以后不为false的值,如果都为false,它将返回最后一个为false的值(未进行类型转化之前的值)。
举例:123 || 23 返回 123,而不是想象中的true.false || null 返回null, 而不是想象中的false。
类型转换函数
parseFloat转换为浮点数:
字符解析函数获取每一个字符直到遇到不属于数值的字符,然后返回它已获取的数值。几个需要特别注意的:
2 |
"123e-2" == > 1.23 (科学计算法是可以识别的) |
6 |
null,undefined,true,false,new Object(),function(){} ==> NaN |
parseInt转换为有符号整数:
跟parseFloat相似,但是他会把小数位舍掉(注意不是四舍五入,是完全舍弃,跟Math.floor处理方式一样),而且他可以识别八进制和16进制表示方式:
7 |
null,undefined,true,false,new Object(),function(){},-Infinity +Infinity NaN ==> NaN |
三个取整函数的区别:
Math.ceil():"天花板",很形象吧?就是取大于等于参数的最小整数。
Math.floor():"地板",取小于等于参数的最小整数。
Math.round():"四舍五入"取整数。
- SQL Server游标 C# DataTable.Select() 筛选数据 什么是SQL游标? SQL Server数据类型转换方法 LinQ是什么? SQL Server 分页方法汇总
SQL Server游标 转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...
- 前端开发 JavaScript 干货知识点汇总
很多初学的朋友经常问我,前端JavaScript都需要学习哪些东西呀?哪些是JavaScript的重点知识啊? 其实做前端开发工程师,所有的知识点都是我们学习必备的东西,只有扎实的技术基础才是高薪的关 ...
- Javascript:Javascript数据类型详解
要成为一个优秀的前端工程师,系统的学习Javascript,有夯实的Javascript基础,以及对语言本身的深刻的理解,是基本功.从Javascript数据类型开始,我将对Javascript知识体 ...
- JavaScript数据类型 typeof, null, 和 undefined
JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 种对象类型: Object Da ...
- 网页、JavaScript 数据类型
JavaScript 数据类型 一.基本数据类型: 字符串.数字.布尔.日期和时间 JavaScript 拥有动态类型 JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: 1 v ...
- javascript数据类型、初始化
Javascript数据类型有6种: 数值型数据类型(Number): 字符串(String): 布尔型数据(Boolean): 对象数据(Object): 空(Null): 未定义(Undefine ...
- javascript中event汇总
原文:javascript中event汇总 ie firefox chrome opera Safari浏览器中对 event的处理并不一致,在此我将各个浏览器中event的兼容处理做了一个汇总,此处 ...
- 第九十九节,JavaScript数据类型
JavaScript数据类型 学习要点: 1.typeof操作符 2.Undefined类型 3.Null类型 4.Boolean类型 5.Number类型 6.String类型 7.Object类型 ...
- Javascript数据类型共有六种
Javascript数据类型共有六种 /* var box; alert(typeof box); // box是Undefined类型,值是undefined,类型返回的字符串是undefined ...
随机推荐
- Git 新建文件并提交
1.创建一个readme.txt. cd /home/cyp/learngit touch readme.txt vim readme.txt 编写内容, wq 保存推出 2.提交步骤 2.1 gi ...
- kvm虚拟化操作
本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1,这里 ...
- 模拟Excel同一列相同值的单元格合并
背景 项目中有一个查询工作量,可以将查询的结果导出到Excel表中.在Excel工具中,有一个合并居中功能,可以将选中的单元格合并成一个大的单元格.现在需要在程序中直接实现查询结果的汇总, 问题分析 ...
- <Android>日期,时间选择对话框
a) 调用Activity的onCreateDialog()方法创建对话框 b) 分别在OnDateSetListener的onDateSet()方法和OnTimeSet ...
- Gitkraken系列-Gitkraken修改用户名
修改用户名 为了方便项目中代码的管理,需要重新编辑用户名. 点击右上角的图像即可看到如下图 3‑1所示的下拉菜单,鼠标悬于Profile上,会出现一个Edit按钮. 图 3‑1 编辑个人信息 点击Ed ...
- CentOS修改DNS、IP地址、网关
一.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameserv ...
- Firefox火狐浏览器 修改默认搜索引擎
如图:
- [BinaryTree] 最大堆的类实现
堆的定义: 最大树(最小树):每个结点的值都大于(小于)或等于其子结点(如果有的话)值的树.最大堆(最小堆):最大(最小)的完全二叉树. 最大堆的抽象数据结构: class MaxHeap { pri ...
- Keil MDK中Image~~RW_IRAM1~~ZI~~Limit(~表示$)
ARM程序的组成 此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别. 一个ARM程序包含3部分:RO, ...
- 前端基础:JavaScript BOM对象
JavaScript BOM对象 JavaScript Window - 浏览器对象模型 浏览器对象模型(BOM)使JavaScript有能力与浏览器"对话". 浏览器对象模型(B ...