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 相关文章推荐
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
js实现字符串的16进制编码不加密
Apr 25 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
js实现的页面矩阵图形变换特效
Jan 26 Javascript
JavaScript表单验证开发
Nov 23 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
Jul 06 Javascript
配置eslint规范项目代码风格
Mar 11 Javascript
详解小程序退出页面时清除定时器
Apr 28 Javascript
vue-quill-editor插入图片路径太长问题解决方法
Jan 08 Vue.js
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
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
详解YII关联查询
2016/01/10 PHP
javascript Demo模态窗口
2009/12/06 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python多线程下载文件的方法
2015/07/10 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
Python内置加密模块用法解析
2019/11/25 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
台湾旅游网站:灿星旅游
2018/10/11 全球购物
员工评语大全
2014/01/19 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
高中运动会广播稿
2014/09/16 职场文书
大学生实习证明范本
2014/09/19 职场文书
预备党员对照检查材料思想汇报
2014/09/24 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
Linux磁盘管理方法介绍
2022/06/01 Servers