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()要注意啦
Oct 30 Javascript
javascript DOM编程实例(智播客学习)
Nov 23 Javascript
JQuery 技巧和窍门整理(8个)
Apr 22 Javascript
JavaScript基础知识之数据类型
Aug 06 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
js实现刷新iframe的方法汇总
Apr 27 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 Javascript
angular仿支付宝密码框输入效果
Mar 25 Javascript
Angular4 中常用的指令入门总结
Jun 12 Javascript
switchery按钮的使用方法
Dec 18 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
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
VFP与其他应用程序的集成
2006/10/09 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
JS继承用法实例分析
2015/02/05 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python 的描述符 descriptor详解
2016/02/27 Python
python2.7的编码问题与解决方法
2016/10/04 Python
Python中函数的返回值示例浅析
2019/08/28 Python
解析Python3中的Import
2019/10/13 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
Python接口开发实现步骤详解
2020/04/26 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
英语故事演讲稿
2014/04/29 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
银行自荐信范文
2015/03/25 职场文书
毕业论文致谢信
2015/05/14 职场文书
MySQL添加索引特点及优化问题
2022/07/23 MySQL