js改php数据类型,javascript的数据类型与其转换的详解

本篇文章给大家带来的内容是关于javascript的数据类型与其转换的详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一、简介

JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有七种:数值(number):整数和小数(比如1和3.14)。

字符串(string):文本(比如Hello World)。

布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)。

undefined:表示“未定义”或不存在。

null:表示空值,即此处的值为空。

对象(object):各种值组成的集合。

符号(Symbol)

其中Symbol是ES6新增的基本数据类型,本文仅介绍前六种。

二、数据类型详解

1、 数值(number):

1.1 整数和浮点数

JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。1 === 1.0 // true

1.2 精度

在国际标准 IEEE 754中,JavaScript 浮点数的64个二进制位,从最左边开始,第1位数字符号位决定了一个数的正负(0为正数,1为负数),第2~12位指数部分决定了数值的大小,第13~64小数部分决定了数值的精度。

1.3 数值的进制

JavaScript 对整数提供四种进制的表示方法:十进制、十六进制、八进制、二进制。十进制:没有前导0的数值。

八进制:有前缀0o或0O的数值。

十六进制:有前缀0x或0X的数值。

二进制:有前缀0b或0B的数值。

1.4 NaN

NaN意为Not a Number,主要出现在将字符串解析成数字出错的场合,如:618 - 'x' // NaNNaN不等于任何值,包括它本身。:NaN === NaN // false2. 字符串(string):

用''或""引起来,里面没有包含任何内容则是空字符串,长度为0。而里面有空格的称为空格字符串,长度为1,两者是不一样的。

2.1 多行字符串

如果字符串分成多行,可以在每一行的尾部使用反斜杠,不加则会报错。除了使用反斜杠外,也可以通过连接运算符(+)来连接多个单行字符串,两种方法所得结果一致,建议使用连接运算符(+)。var longString = 'Long \

long \

long \

string';

longString

// "Long long long string"var longString = 'Long '

+ 'long '

+ 'long '

+ 'string';

longString

// "Long long long string"

ES6中新增反引号(`)来写多行字符串,而这个多行字符串的length会包含回车的长度。

2.2 转义

反斜杠()在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。常需要用反斜杠转义的特殊字符有:0 :null(u0000)

n :换行符(u000A)

r :回车键(u000D)

t :制表符(u0009)

' :单引号(u0027)

" :双引号(u0022)

\ :反斜杠(u005C)

2.3 length属性

length属性返回字符串的长度,该属性由字符串本省决定,无法通过赋值改变。var s = 'mamamoo';

s.length // 7

s.length = 5;

s.length // 7

3. 布尔值(boolean):

布尔值只有“真”和“假”这两个值。“真”用关键字true表示,“假”用关键字false表示。如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了undefined、null、false、0、NaN、""或''(空字符串)六个值被转为false,其他值都视为true。

4. undefined和null:

null与undefined都可以表示“没有”,含义非常相似。两者的区别是:null是一个表示“空”的对象,转为数值时为0;undefined是一个表示"此处无定义"的原始值,转为数值时为NaN。

变量没有值返回的是undefined。

当有一个对象object但还不想赋值时推荐使用null;当有一个非对象但还不想赋值时推荐使用undefined。

5. 对象(object):

5.1 生成方法

对象简单来说就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。

生成方法是用大括号把键值对包起来后赋值给变量,两个键值对之间用逗号分隔。“:”前是键名,“:”后是键值。如:var obj = {

foo: 'Hello',

bar: 'World'

};

5.2 键名与键值

对象的所有键名都是字符串,要加引号,不加也会自动转为字符串。如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号,否则会报错。而键值是什么类型就用该类型的格式。

5.3 属性

对象的每一个键名又称为“属性”(property),它的“键值”可以是任何数据类型。

属性的读取

读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。var obj = {

p: 'Hello World'

};

obj.p // "Hello World"

obj['p'] // "Hello World",[]内''一定要加

属性的删除delete(无value无key)var obj = { p: 1 };

Object.keys(obj) // ["p"]

delete obj.p // true

obj.p // undefined

Object.keys(obj) // []

属性的查看Object.keysvar obj = {

key1: 1,

key2: 2

};

Object.keys(obj);

// ['key1', 'key2']

属性是否存在:in

in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。

属性的遍历:for...in 循环var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {

console.log('键名:', i);

console.log('键值:', obj[i]);

}

// 键名: a

// 键值: 1

// 键名: b

// 键值: 2

// 键名: c

// 键值: 3

三、如何知道变量类型?

使用type of可得变量的数据类型,如:var t = 619;

type of t;//"number"

特别注意的是:当数据类型为null时,用type of打出的数据类型却是'object'。

当定义了一个函数时,用type of打出的数据类型却是'function'。

四、数据类型的转换

4.1 转为string使用toString()var t = 619;

t.toString();//"619"

null没有toString这个API,不能使用toString,会报错var n = null;

n.toString;

//Uncaught TypeError: Cannot read property 'toString' of null

undefined也会报错var n = undefined;

n.toString();

//Uncaught TypeError: Cannot read property 'toString' of undefined

object使用toString会得到"[object Object]"。var object = {name:"po"};

object.toString()

//"[object Object]"通过与空字符串相加(+"")也能转化为字符串类型,且null、undefined也适用。

使用window.String()window.String(null)//"null"

为什么1 + '1' = '11'?

这是因为当两个不同数据类型相加时,会优先选择转化为字符串,所以1 + '1'相当于1.toString() + '1',于是结果为两个字符串1相加,即字符串11。

4.2 转为布尔

使用Boolean()Boolean(0)//false

Boolean('')//false

Boolean(' ')//true

使用!!!! ''//false

!! ' '//true

五个falsy值:0、NaN、空字符串、null、undefined

4.3 转为Number

使用Number()

Number('1')//1

使用parseInt()//第二位参数要写,是表示进制

使用parseFloat()

parseFloat('1.23')//1.23

使用 -0

'1'-0//1

使用 +

+ null//0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值