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 相关文章推荐
iframe 父窗口和子窗口相互的调用方法集锦
Dec 15 Javascript
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
jquery动态导航插件dynamicNav用法实例分析
Sep 06 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 Javascript
Bootstrap表格和栅格分页实例详解
May 20 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
jQuery ready()和onload的加载耗时分析
Sep 08 Javascript
谈谈第三方App接入微信登录 解读
Dec 27 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
Dec 30 Javascript
Async/Await替代Promise的6个理由
Jun 15 Javascript
深入理解Antd-Select组件的用法
Feb 25 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
PHP array 的加法操作代码
2010/07/24 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php中in_array函数用法探究
2014/11/25 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
Laravel find in set排序实例
2019/10/09 PHP
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python中反射和描述器总结
2018/09/23 Python
django基于restframework的CBV封装详解
2019/08/08 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python关于变量名的基础知识点
2020/03/03 Python
python字符串判断密码强弱
2020/03/18 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
企业军训感想
2014/02/07 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
社区服务标语
2014/07/01 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
2014年审计工作总结
2014/11/17 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
Python机器学习之决策树和随机森林
2021/07/15 Javascript
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
Python日志模块logging用法
2022/06/05 Python