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学习笔记1 数据类型
Jan 11 Javascript
js倒计时小程序
Nov 05 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
jQuery中的一些常见方法小结(推荐)
Jun 13 Javascript
详解angular中如何监控dom渲染完毕
Jan 03 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
Jan 08 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
vue计算属性和监听器实例解析
May 10 Javascript
vue展示dicom文件医疗系统的实现代码
Aug 27 Javascript
javascript导出csv文件(excel)的方法示例
Aug 25 Javascript
JS函数进阶之继承用法实例分析
Jan 15 Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 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
APMServ使用说明
2006/10/23 PHP
php中smarty区域循环的方法
2015/06/11 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
详解在React里使用"Vuex"
2018/04/02 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
python 利用zmail库发送邮件
2020/09/11 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
AOP的定义以及作用
2013/09/08 面试题
2014年减负工作总结
2014/12/10 职场文书
运动会开幕词
2015/01/28 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
朋友离别感言
2015/08/04 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL