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调用Session的实现代码
Oct 29 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
Sep 19 Javascript
js控制文本框只输入数字和小数点的方法
Mar 10 Javascript
jQuery中 delegate使用的问题
Jul 03 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
Apr 26 Javascript
防止Node.js中错误导致进程阻塞的办法
Aug 11 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
Jun 04 Javascript
js实现城市级联菜单的2种方法
Jun 23 Javascript
vue项目中使用scss的方法步骤
May 16 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
Sep 07 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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获取网页内容方法总结
2008/12/04 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
基于jQuery试卷自动排版系统
2010/07/18 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
requireJS使用指南
2016/04/27 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
物理教师自荐信范文
2013/12/28 职场文书
人事专员工作职责
2014/02/22 职场文书
党员民主评议个人总结
2014/10/20 职场文书
质检员工作总结2015
2015/04/25 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
体育部部长竞选稿
2015/11/21 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python