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 相关文章推荐
textarea的value是html文件源代码,存成html文件的代码
Apr 20 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
Jquery 数据选择插件Pickerbox使用介绍
Aug 24 Javascript
探讨JavaScript中声明全局变量三种方式的异同
Dec 03 Javascript
jquery的clone方法应用于textarea和select的bug修复
Jun 26 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 Javascript
js控制文本框只输入数字和小数点的方法
Mar 10 Javascript
禁止按回车键提交表单的方法
Jun 11 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
Vue官方文档梳理之全局配置
Nov 22 Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
js删除数组中某几项的方法总结
Jan 16 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
PHP中的Streams详细介绍
2014/11/12 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
详解如何运行vue项目
2019/04/15 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python创建或生成列表的操作方法
2019/06/19 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
研究生自我鉴定范文
2013/10/30 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
爱国演讲稿500字
2014/05/04 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
南湾猴岛导游词
2015/02/09 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis