JS之类型转换
一、显示类型转换
1.Boolean()
(1)、undefined/null/‘’ ==》 false
(2)、任何对象(包括例如var obj = {} ) ==> true
(3)、非空字符串 ==》 true
(4)Infinity/-Infinity ==>true
(5)、其他应该均为true
2.Number()
(1)、如果不是字符串,而是数值,则转换为对应的十进制。
(2)、如果为字符串,
a)字符串内容均为数值,则转换为相应的数值。
Number(123); // => 123
Number(0123); //=>83
Number(0x123); //=>291
Number(00x123); //报错
Number(000123); //83
注意进制问题:
如果为0开头的数字字符串,为八进制,浏览器会将前导0忽略,将后面的当成十进制返回 Number('0123'); // =》123
如果为0x开头的数字字符串,则浏览器认为其为十六进制数值(不会忽略前导0,若前面为‘00x’,则返回NaN),将其装换为十进制没返回 Number('0x123'); // =>291
b)字符串内容均为非数值字符,则返回NaN
c)字符串内容数字和非数值混搭
如果第一位为数值,则截取第一位数值到最后一位数值(之后为非数值,就算非数值后又有数值也不考虑)。 Number('123daasd123132'); // =>123
如果第一位为非数值*则直接返回NaN(NaN不能参与比较,即使和自己 NaN == NaN ,报错)
(3)、undefined ==》NaN
null ==>0
空字符串(里面可以包含若干空格) ==>0
对象 ==》先转换valueOf()返回的值,若为NaN,在转换toString()返回值,即为最后结果
注意:还有一种特殊情况,当数字值溢出数值范围,返回无穷大,上溢出,返回Infinity,下溢出,返回-Infinity。
浏览器能表示的最小值为Number.MIN_VALUE ,最大值为Number.MAX_VALUE
3.parseInt()
1. 几乎和parseFloat转换方法完全一样,只不过最终结果返回的都是整数,而不存在浮点数。
2.第二个特殊点是:parseInt(arg1,arg2);有第二个可选参数,制定arg1为几进制数,然后将其转换为十进制整数,如果第二个参数未制定,则默认为十进制。(制定进制转换为十进制);(第二个参数的范围为 2 ~ 36,设定值超过此范围则返回NaN,注:第二个参数实际上也可设置为0,此时相当默认值十进制)
3.区别:toString()方法,toString方法里参数可选,制定将调用该方法的数值转换的进制数,最后再抓转换为字符串 var x = 123; x.toString(2); //=>"1111011"
4.parseFloat()
1.几乎和parseInt转换方法完全一样,只不过最终结果返回的都是浮点数,而不存在整数。
2.不存在第二个参数.
5.String(),等同于toString(),只不过没参数而已
(1)、如果有toString()方法,则调用该方法。
(2)、null和undefined没有该方法,分别返回'null' 和 ’undefined‘;
二、隐士类型转换:
1.进行相等比较,会尽量转换为相同类型再判断
2.+,-,++,--会将操作的先转换为数字,再进行操作。
3.反正就是能转换为合适的类型,就会自动转换。
JS之类型转换的更多相关文章
- JS 数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- JS数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- js 自动类型转换
js自动类型转换 1.==符号在判断左右两边数据是否相等时,如果数据类型一致,直接比较值即可 2.==符号左右数据类型不一致时,如果两方数据为布尔型.数值型.字符串型时,不为数字的那一方自动调用Num ...
- JS的类型转换,强制转换和隐式转换
JS的类型转换 1.强制转换 通过String(),Number(),Boolean()函数强制转换 var str=123; var str1='123'; console.log(typeof s ...
- JS的类型转换
首先我们要知道,在 JS 中类型转换只有三种情况,分别是: 转换为布尔值 转换为数字 转换为字符串 我们先来看一个类型转换表格 转Boolean 在条件判断时,除了 undefined, null, ...
- js笔记——js数据类型转换
以下内容摘录自阮一峰的<语法概述 -- JavaScript 标准参考教程(alpha)>章节『数据类型转换』,以做备忘.更多内容请查看原文. JavaScript是一种动态类型语言,变量 ...
- JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换
1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...
- {}+[] = ? 和 []+{} = ? 浅谈JS数据类型转换
参加公司技术嘉年华第一季(前端.服务端)的间隙,陈导问了我一个问题:{}+[] 和 []+{}两个表达式的值分别是什么?根据我的理解我觉得结果应该都是"[object Object]&quo ...
- JS 数据类型转换以其他
JavaScript 是一种弱类型的语言,也就是没有类型限制,变量可以随时被赋予任意值. 同时,在程序运行过程中,类型会被自动确认的.因此,这就是涉及到数据的类型转换.在 JS 的世界中,数据类型转换 ...
随机推荐
- Java使用JSP Tag Files & JSP EL Functions打造你自己的页面模板
1. 简单说明:在JSP 2.0后, 你不再需要大刀阔斧地定义一堆TagSupport或BodyTagSupport, 使用JSP Tag Files技术可以实现功能强大的页面模板技术. 在这里抛砖引 ...
- 别跟我来这套 Hot Swap 热插拔
如果你觉得我们演的不好,可以随时打断,如果你觉得怎么演好可以随时来改,你都可以直接来演.
- Mysql找不到mysql.sock怎么办?
1. #ps -aux|grep mysql 找mysql的进程. #kill mysql进程号 确定全部kill光 2.直接跳第3步,无效再使用第2步 /usr/local/mysql/bin/my ...
- PE格式的理解(待补充)
PE文件格式 一.基本结构 1.DOS头一般到节区头成为PE头部分,其下称为PE体.文件的内容一般可分为代码(.text).数据(.data).资源(.rsrc),分别保存. 2.PE头与各节区的尾部 ...
- 通过HTML5实现发送声音
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 【WildCard Matching】cpp
题目: Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single charact ...
- Window.document对象(2)
四.操作样式 首先利用元素的ID找到该元素,存于一个变量中: var a = document.getElementById("id"): 然后可以对该元素的属性进行操作: a.s ...
- Spring项目跟Axis2结合
本文的前提是已经有一个Spring的项目,在此基础上如何跟Axis2进行结合,开发出WebService服务和调用WebService服务. 1.开放WebService服务 1.引入必要的ja ...
- Hdu 1507 Uncle Tom's Inherited Land* 分类: Brush Mode 2014-07-30 09:28 112人阅读 评论(0) 收藏
Uncle Tom's Inherited Land* Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- shader 汇编
mad ro.xy v1.xyxx, l(1.000000,-1.000000,0.0000,0.000000), l(0.000000,1.000000,0.0000,0.000000) 这个东西真 ...