JavaScript数据类型

JavaScript——数据类型

基本数据类型

String(字符串类型)

字符串型是JavaScript中用来表示文本的数据类型,是由Unicode字符、数字和标点符号组成的一个字符串序列。

字符串通常是由单引号或是双引号括起来的。
1.单引号和双引号均可解析转义字符
2.单引号和双引号均不能解析变量
3.变量与字符串、变量与变量要使用+来连接。
4.单引号和双引号可以互相嵌套,如果单引号中要嵌套单引号,需要将单引号转义,同理,双引号相同

Number(数值类型)

最基本的数值字面量格式是十进制整数:
除了以十进制表示外,整数还可以通过八进制或十六进制的字面值来表示:
var num = 070; //八进制数,以0开头
var num = 0xA; //十六进制数,以0x开头

注意:虽然数值可以用八进制或十六进制来表示,但在进行算术计算时,所有以八进制和十六进制表示的数值都将转换成十进制数值。

浮点类型

1.所谓的浮点数值就是,该数值中必须包含一个小数点。并且小数点后面必须至少一位数字。
2.如果小数点后面没有跟任何数字,可以作为整数值来保存。
3.如果浮点数值本身代表的就是一个整数(如1.0)会被转为整数。

Boolean类型

布尔类型的字面值只有两个,true和false,可以使用Boolean()函数将一个非布尔类型转换为布尔类型。
注意:true和false是严格区分大小写的

数据类型转换为true转换为false
布尔型truefalse
字符串任何非空字符串“”空字符串
数值任何非零数值0和NaN
对像任何对象null

类型转换

数值转换

我们可以使用三个函数Number()、parseInt()和parseFloat()将一个非数值转换为数值。

Number()函数的转换规则

1.如果是布尔值,true和false将分别转换为1和0
2.如果是数字值,只是简单的传入和返回
3.如果是null,返回0
4.如果undefined,返回NaN
5.如果是字符串,遵循下列规则:
a.“11”会变成11
b.“1.1”会变成1.1
c.“0xf”会变成相同大小的十进制整数值
d. 如果字符串是空的,则将其转换为0
e. 如果字符串包含除上述格式之外的字符,则将其转换成NaN

parseInt()的转换规则:

1.忽略字符串前面的空格,直到找到第一个非空格字符
2.如果第一个字符不是数字或者是负号,返回NaN
3.空字符串,返回NaN
4.如果第一个字符是数字,会继续解析第二个字符,直到解析完所有后续字符或遇到了一个非数字字符。
5.如果字符串以0x开头且后面跟数字字符,就会将其转为10进制数,同样,八进制也一样。

parseFloat()的转换规则:

也是从第一个字符开始解析每个字符,而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。
1.第一个小数点是有效的,第二个小数点无效
2.始终忽略前面的0,不分进制数
3.十六进制会被转换成0
4.空字符串转换为NaN

复合数据类型

对象

对象其实就是一些数据的集合,这些数据可以是字符串型、数字型和布尔型,也可以是复合型。

对象的创建
1.使用构造函数创建内置对象

var myObject = new Object();
myObject.name = “tina”;
myObject.age = 20;
myObject.say = function(){}

2.直接创建自定义对象

  var 对象名 = {属性名1:属性值,属性名2:属性值2,…….}

3.使用自定义构造函数创建对象

function pen(name,color,price){
  //对象的name属性
  this.name = name;
  //对象的color属性
  this.color = color;
  //对象的piece属性
  this.price = price;
  //对象的draw方法
  this.draw = function(){};
}

布尔对象

创建布尔对象与转换布尔值 布尔对象的属性 : constructor(返回对创建此对象的Boolean函数的引用) 使用“new Boolean()”构造函数将参数转换成一个布尔值,并创建一个布尔对象,而使用“Boolean()”转变函数只是将一个值转换成布尔类型的数据。

a.如果参数为0、null、NaN、false、空字符串或undefined,都将转为false
b.除了以上的情况之外,全部转为true,包括字符串“false”

日期对象

日期对象可以使用系统内置的构造函数来创建日期对象:

new Date()
new Date(年,月,日,时,分,秒)  

日期对象同样有constructor属性

日期对象方法

getFullYear()返回年份,4位数,建议使用
getMonth()返回月份,其值范围为0~11
getDate()返回日期对象中的一个月中的第几天
getDay()返回星期中的某一天,0~6
getHours()返回日期对象中的小时部分
getMinutes()返回日期对象中的分钟部分
getSeconds()返回日期对象中的秒钟部分
getMilliseconds()返回日期对象中的毫秒部分
getTime()返回日期对象中的时间戳的毫秒数
getTimezoneOffset()返回日期对象中的时区的时差数,单位是分

数学对象

数学对象主要作用是为数学计算提供常量和计算函数。

数学对象的属性:

Math.E自然对数的底数(e)
Math.LN10oge10
Math.LN2loge2
Math.LOG10Elog10e
Math.LOG2Elog2e
Math.PI3.1415926
Math.SQRT1_22的平方根的倒数
Math.SQRT22的平方根
Math.abs()绝对值
Math.ceil()进一取整
Math.floor()退一取整
Math.max(num1,num2….)/取最大值
Math.min()取最小值
Math.pow(x,y)返回x的y次幂
Math.random()0.0~1.0之间的随机数,包括0不包括1
Math.round()四舍五入 Math.sqrt(): //平方根

字符串对象

创建字符串对象

var str = new String(“abcdefg”);  
var str = “abcdefg”;  

字符串对象的方法:

indexOf(“abc”)返回子字符串abc在字符串中第一次出现的位置
lastIndexOf(“abc”)返回子字符串abc在字符串中最后一次出现位置
match(regexp)找到一个或多个正则表达式的匹配
replace(表达式,替换的字符串)替换一个与正则表达式相匹配的子串
search(regexp)查找与正则表达式相匹配的子字符串
split(正则表达式,数组最大长度)用于把一个字符串分割成字符串的数组
slice(startindex,endindex)返回一个子字符串
substr(startindex,length)返回一个子字符串
substring(startindex,endindex)返回一个子字符串
toLowerCase()将字符串转换为小写
toUpperCase()将字符串转换为大写
charAt(0)返回指定索引字符

字符串对象拥有的属性
length //字符串的长度

数组

数组与对象一样,也是一些数据的集合,这些数据也可以是字符串型、数字型、布尔型、或者是复合型。与对象不同,数组中的数据并没有命名,不能通过名字来引用该数据。在数组中,为每个数据都编了一个号(从0开始),为数组的下标。

1.创建数组的方式一[ ]

var arr = [' 1 '  ,' 2 ' , ' 3 ' , ' 4 ' ];

2.创建数组的方式二:构造函数的方式

var name ='zhang';
var age = 23;
var sex = girl;
var arr = new Array[name,age,sex];

注意:在数组中的数据没有设置名字的话,区分他们的数组的索引。索引从数组的长度决定的数组中有几条数据(数组的索引从0开始的),索引最大值=数组长度-1。

数组的方法

数组元素的个数array.length
对创建此对象的数组函数的引用array.constructor
toString()将数组转换为字符串
join()将数组元素连接成字符串
push()在数组尾部添加元素并返回一个新的长度
concat()添加元素并生成新数组
unshift()在数组头部添加元素并返回一个新长度
pop()删除最后一个元素并返回删除的元素
shift()删除第一个元素并返回一个删除的元素
splice()删除、替换或插入数组元素
slice()返回数组中的一部分
reverse()颠倒数组中的元素
sort()将数组元素排序

数组对象中的方法-sort()

['Google', 'Apple', 'Microsoft'].sort();
 ['Google', 'apple', 'Microsoft'].sort();
 [10, 20, 1, 2].sort();  Sort()

方法默认按照ASCII码排序 j解析凡是;按照数组中数据先转化为字符串,然后再转化为ASCI 码值然后再进行比较.(重点:原理);

解决办法:
1.数字排序 sort(function (x, y) { if (x < y) { return -1; } if (x > y) { return 1; } return 0; })
2.字母排序 sort(function (s1, s2) { x1 = s1.toUpperCase(); x2 = s2.toUpperCase(); if (x1 < x2) { return -1; } if (x1 > x2) { return 1; } return 0; })
3汉字排序. sort(function(a,b){return a.localeCompare(b)})

改变数组中数据
1.将数组中已有的数据的值进行改变,找到需要改变的数据的索引,以赋值的形式进行改变。

var arr = [1,2,3,4,5]
arr[1] = 'zhang';

2.to String()将JS中其他的数据类型转化为字符串类型。

console.log(arr.toString())  //输出的方式

3.join()将数组元素链接成数组元素

console.log(arr.join())

其它数据类型

1.函数

函数是一段可执行的JavaScript代码,在JavaScript中,函数可以带有0个或多个参数,也可以返回一个值或不返回值。

2.null

null是一个特殊的数据类型,其所代表的意思是“空”。需要注意,这个空并不代表是0或空字符串。null代表没有值,不是一个有效的数字、字符串、也不是数组、对象和函数,什么数据类型都不是。

3.undefined

undefined也是一个特殊的数据类型,只有定义了一个变量但没有为该变量赋值,使用了一个并未定义的变量、或者是使用了一个不存在的对象的属性时,JavaScript会返回undefined。

undefined与null的区别:

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。 Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值