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 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
Feb 14 Javascript
JavaScript 对象模型 执行模型
Dec 06 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
Mar 15 Javascript
js判断url是否有效的两种方法
Mar 04 Javascript
node.js中的path.sep方法使用说明
Dec 08 Javascript
JS定义网页表单提交(submit)的方法
Mar 20 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
Dec 09 Javascript
JS高级程序设计之class继承重点详解
Jul 07 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 文件上传类代码
2011/08/06 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
js实现简易ATM功能
2020/10/27 Javascript
python创建进程fork用法
2015/06/04 Python
Python操作串口的方法
2015/06/17 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python中requests库session对象的妙用详解
2017/10/30 Python
Python3多线程操作简单示例
2018/05/22 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
python3中for循环踩过的坑记录
2020/12/14 Python
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
诚信承诺书范文
2014/03/27 职场文书
酒后驾车标语
2014/06/30 职场文书
重阳节慰问信
2015/02/15 职场文书
个人借条范本
2015/05/25 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis