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 相关文章推荐
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
JS生成随机字符串的多种方法
Jun 10 Javascript
ES6正则表达式的一些新功能总结
May 09 Javascript
JQuery判断正整数整理小结
Aug 21 jQuery
使用vue + less 实现简单换肤功能的示例
Feb 21 Javascript
微信小程序实现长按删除图片的示例
May 18 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
JavaScript对JSON数组简单排序操作示例
Jan 31 Javascript
JS精髓原型链继承及构造函数继承问题纠正
Jun 16 Javascript
JS实现九宫格拼图游戏
Jun 28 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 include加载文件两种方式效率比较
2010/08/08 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
vuejs实现下拉框菜单选择
2020/10/23 Javascript
Python脚本实现集群检测和管理功能
2015/03/06 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
如何利用find命令查找文件
2016/11/18 面试题
高中同学聚会邀请函
2014/01/11 职场文书
小学家长会邀请函
2014/01/23 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
高中团支书竞选稿
2015/11/21 职场文书
导游词之无锡东林书院
2019/12/11 职场文书