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 相关文章推荐
表单项的name命名为submit、reset引起的问题
Dec 22 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
Oct 17 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
JS函数重载的解决方案
May 13 Javascript
DOM 事件流详解
Jan 20 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 Javascript
JS中常用的消息框总结
Feb 24 Javascript
详解webpack打包后如何调试的方法步骤
Nov 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 CURL获取邮箱地址的详解
2013/06/03 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
Python的Django框架中settings文件的部署建议
2015/05/30 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
Python request操作步骤及代码实例
2020/04/13 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
公司股权转让协议书
2014/04/12 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
六一儿童节活动总结
2014/08/27 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP