js中的数据类型及类型转换

一. 数据类型

js中的数据类型:

5种基础类型:Undefined,Null,Boolean,Number,String

1种复合类型:Object(对象包括数组,函数等)

二. 常见的判断js数据类型的方法有如下几种

1.最常见的判断方法:typeof

其中typeof返回的类型都是字符串形式,需注意!!!!!

     alert(typeof 123) ------------------>"number"

2.已知对象类型: instanceof

注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。

new Date() instanceof Date -------->true

3.对象原型链判断方法: prototype 通用但很繁琐

    console.log(Object.prototype.toString.call([1, 2, 3])) -------->[object Array]

4.根据对象的构造器constructor进行判断

5.jQuery方法: jquery.type()

    据说是无敌万能的方法.如果对象是null跟undefined,直接返回"null"和"undefined",

   注意:在使用时,一定要引入jquery文件,不然会报错,jQuery is not defined

  1. console.log(jQuery.type(function(){}) === "function") -------->true

  2. console.log(jQuery.type(new Date()) === "date")-------->true

6.严格运算符: ===

通常===出现在我们的条件判断中,比如判断一个变量是否为空,变量是否为数据等,示例如下

var a=null; typeOf a //object. a===null. //true
//判断一个非数组变量是否为空
if(typeof a != 'undefined' && a ){}
//判断一个数组变量是否为空
if (typeof a != “undefined” && a && a.length > 0) {}


三. 数据类型转换

显示转换:

使用String(), Number(), Boolean(), Object()分别对数据进行字符串,数字,布尔值,对象等的转换,也称为强制转换

1)toString()方法:注意,不可以转null和underfined,String()方法:都能转

var str = false.toString();

console.log(str, typeof str);

返回的结果为 false,string

看看null 和 undefined能不能转换为字符串javascript

1

2

var str = null.toString();

console.log(str, typeof str);

结果程序报错

.toString() 括号中的可以写一个数字,代表进制,对应进制字符串

二进制:.toString(2); 

八进制:.toString(8);

String()可以将null和undefined转换为字符串,但是没法转进制字符串

例如将null转换为字符串

1

2

var str = String(null);

console.log(str, typeof str);

返回的结果为 null,string

将undefined转换为字符串

1

2

var str = String(undefined);

console.log(str, typeof str);

返回的结果为 undefined,string

2)Number可以把任何类型的数据转换为数值,parseInt和parseFloat只能把字符串或数值转换为数值。

Number('4a')// NaN. parseInt('aa4')// NaN.   parseInt('4a')//4   

如果要转换的字符串中有一个不是数值的字符,返回NaN

Number(true)。//1 

3)Boolean():0  ''(空字符串) null undefined NaN 会转换成false  其它都会转换成true

隐式转换:

在js中,很多情况下部分运算符会对操作数进行隐式的类型转换 ,如+和==

1 + '1'//‘11'

2 - ‘1’ // 1

+'32'//32

!0//true

var a = 2; a++ //2

var a = 2; ++a//3

在js中,- * /会把操作数转换成数字,但是请注意,+比较特殊,因为在js中,+号不仅是数字运算符,也是字符串连接符,所以在出现加号的时候就要根据具体情况去看结果了,如果+号的两端都是数字,那么结果自然也是数字,同理两端都是字符串,那么结果也同样是字符串,如一端是数字,一端是字符串,那么就会把数字先转换成字符串,在进行连接,所以结果是字符串:

比较运算符==也会对操作数进行隐式转换,而===则不会进行类型转换

0 == false//true   1 === ‘1’//false

但是:null==undefined//true 

更多显示隐式转换 参照

js数据类型与隐式类型转换 - 我会放电啪啪 - 博客园

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值