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 Hack
Jul 24 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
Feb 05 Javascript
javascript实现可改变滚动方向的无缝滚动实例
Jun 17 Javascript
微信小程序 触控事件详细介绍
Oct 17 Javascript
js 递归和定时器的实例解析
Feb 03 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
jQuery中map函数的两种方式
Apr 07 jQuery
vue使用better-scroll实现下拉刷新、上拉加载
Nov 23 Javascript
简单了解JavaScript中常见的反模式
Jun 21 Javascript
Vue打包后访问静态资源路径问题
Nov 08 Javascript
JavaScript实现多球运动效果
Sep 07 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 Vue.js
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编码规范-php coding standard
2007/03/16 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
jQuery实现评论模块
2020/08/19 jQuery
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python批量爬取下载抖音视频
2019/06/17 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
简单的Python人脸识别系统
2020/07/14 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
opencv实现图像平移效果
2021/03/24 Python
同学聚会策划方案
2014/06/06 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
党员个人剖析材料
2014/09/30 职场文书
运动会加油稿20字
2014/11/15 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书