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 相关文章推荐
一个小型js框架myJSFrame附API使用帮助
Jun 28 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
Apr 02 Javascript
Jquery 模板数据绑定插件的使用方法详解
Jul 08 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
Jan 13 Javascript
支持移动端原生js轮播图
Feb 16 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
jQuery手风琴的简单制作
May 12 jQuery
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
vue-cli3.0配置及使用注意事项详解
Sep 05 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 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 生成WML页面方法详解
2009/08/09 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php PDO异常处理详解
2016/11/20 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
Python中的连接符(+、+=)示例详解
2017/01/13 Python
python实现各进制转换的总结大全
2017/06/18 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
大专生工程监理求职信
2013/10/04 职场文书
社团活动总结
2014/04/28 职场文书
预备党员公开承诺书
2014/05/28 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书