Javascript必知必会(四)js类型转换


Posted in Javascript onJune 08, 2016

string和number boolean

javascript 类型会根据赋值的进行转成相应的类型。

var str = "";
alert(typeof (str));//string
str = ;
alert(typeof (str));//number
var sum = str + ; //+编程两个数字相加
alert(sum);//

这一种比较明显,一眼就可以计算出其值。但是请看下面这种转换

var sum = "" + "";
alert(typeof (sum)); //string
alert(sum);// 
var sum = "" + ;
alert(typeof (sum)); //string
alert(sum);//

 


 var sum = + "";


 alert(typeof (sum));//string


 alert(sum);
var area = "" * "";
alert(typeof (area)); //number
alert(area);//
var sub = "" - "";
alert(typeof (sub)); //number
alert(sub);//
var div = "" / "";
alert(typeof (div));//number
alert(div);//.

number 类型如果和string 类型"+", 将会直接number转成string

上述中“+” 比较特殊,如果是- 、* 、/ 呢;那么最终会转成什么类型呢。

var area = "" * "a";
alert(typeof (area));//number
alert(area);//NaN
var sub = "a" - "";
alert(typeof (sub));//number
alert(sub);//NaN
sub = "a" - ;
alert(typeof (sub));//number
alert(sub);//NaN
var div = "" / "a";
alert(typeof (div));//number
alert(div);//NaN
div = "a" / ;
alert(typeof (div));//number
alert(div);//NaN

如上 - 、*、/ 是number 中算术具有的。string和number是不能进行运算的,所以其值都是NaN。类型number。

var a = true;
alert(typeof(a));//boolean
var b = "true";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //truetrue
alert(a == b);//false

boolean 和 string ,boolean类型自动转成了字符串“true”,但是为什么a不等于b呢

大家看下这个例子:

var c = "";
alert(typeof(c));//string
var d = ;
alert(typeof (d));//number
alert(c == d);//true

  这里给出了转换的原则:(供参考)

1. 如果有一个操作数是布尔值,则在比较相等之前将其转换为数值————false转换为0,true转换为1;
2. 如果一个操作数是字符串,另一个操作符是数值,则在比较相等之前先讲字符串转换为数值;
3. 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较。

那么在比较字符串和布尔类型是就会:

发生这样的转换: Boolean true先转成number 1,在转成字符串“1” ,在进行比较。结果肯定是 false 了。

null 和string number Boolean undefined

var a = null;
alert(typeof (a));//object
var b = "hello";
var ab = a + b;
alert(typeof (ab));//string
alert(ab); //nullhello
var c = ;
var ac = a * c;
alert(typeof (ac)); //number
alert(ac);//
if (a ) //false
{
} else
{
alert("false");
}
var u;
alert(a == u); //true

从给出的例子可以看出:

null 在 string中 自动转成字符串"null" , 在number中表示数字 0,在逻辑判断中相当于false,在值表示时 和undefined 一样。注意是== 而不是===。

虽然javascript 在进行比较时,== 转换了其比较类型,但是其变量类型并没有因为== 而发生改变。

Javascript 相关文章推荐
跟着JQuery API学Jquery 之三 筛选
Apr 09 Javascript
js post方式传递提交的实现代码
May 31 Javascript
JS验证邮箱格式是否正确的代码
Dec 05 Javascript
javascript下拉框选项单击事件的例子分享
Mar 04 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
解决layui动态添加的元素click等事件触发不了的问题
Sep 20 Javascript
javascript实现切割轮播效果
Nov 28 Javascript
JavaScript交换变量常用4种方法解析
Sep 02 Javascript
原生js实现自定义滚动条
Jan 20 Javascript
JavaScript必知必会(三) String .的方法来自何方
Jun 08 #Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 #Javascript
JavaScript必知必会(九)function 说起 闭包问题
Jun 08 #Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 #Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
Jun 08 #Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 #Javascript
AngularJs学习第八篇 过滤器filter创建
Jun 08 #Javascript
You might like
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
PHP时间函数使用详解
2019/03/21 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
js选项卡的实现方法
2015/02/09 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
jQuery中的siblings用法实例分析
2015/12/24 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
J2EE相关知识面试题
2013/08/26 面试题
计算机专业毕业生自荐信
2013/12/31 职场文书
求职信范文英文版
2014/01/05 职场文书
家长对孩子的感言
2014/03/10 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
升职自荐信怎么写
2015/03/05 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书