JS基本数据类型
数据类型
typeof可以查看数据的数据类型。
数值(Number)
整数或浮点数
var a = 1
var b = 1.1
var c = 1e5 // 1 * (10 ^5)
typeof a // 'number'
typeof b // 'number'
typeof c // 'number
常用方法
parseInt("123") // 123 返回整数
parseInt("123.9") // 123 返回整数部分
parseInt("ABC") // NaN 字符串不是数值返回NaN
parseFloat("123.456") // 123.456 返回浮点数
NaN也属于数值类型,意思是'不是一个数字'(Not A Number)
var d = NaN
typeof d // 'number'
字符串(String)
使用单引号或双引号定义单行,使用`` `定义多行
var a = 'abc'
var b = "abc"
var c = `abc
def` // 'abc\ndef'
typeof a // 'string'
typeof b // 'string'
typeof c // 'string'
常用方法
拼接字符串
var a = 'abc'
var b = 'def'
var a + b // 'abcdef'
方法 | 说明 |
---|---|
.length | 返回字符串长度 |
.trim() | 移除首尾空格 |
.trimLeft() | 移除左边的空格 |
.trimRight() | 移除右边的空格 |
.charAt(n) | 返回第n个字符 |
.concat(value, ...) | 拼接 |
.indexOf(substring, start) | 子序列位置 |
.substring(from, to) | 根据索引获取,不会取到to位置的值 |
.slice(start, end) | 切片,不会取到end位置的值 |
.toLowerCase() | 小写 |
.toUpperCase() | 大写 |
.split(delimiter, limit) | 分割 |
效果演示:
var a = 'abcd'
a.length // 4
var a = ' abc '
a.trim() // 'abc'
a.trimLeft() // 'abc '
a.trimRight() // ' abc'
var a = 'abcd'
a.charAt(0) // 'a'
a.charAt(1) // 'b'
var a = 'abc'
a.concat(13.1,'def') // 'abc13.1def'
var a = 'abcd'
a.indexOf('c', 0) // 2 找到返回位置
a.indexOf('b', 2) // -1 找不到返回-1
var a = 'abcd'
a.substring(1, 2) // 'b' 不会取到结尾位置的值
var a = 'abcd'
a.slice(1, 3) // 'bc' 不会取到结尾位置的值
var a = 'aBcD'
a.toLowerCase() // 'abcd'
var a = 'aBcD'
a.toUpperCase() // 'ABCD'
var a = 'ab|b|c'
a.split('|', 1) // ['ab']
a.split('|', 2) // ['ab', 'b']
补充
.substring与.slice区别:
/*不同点:前者不支持负数索引,后者支持*/
var a = 'abcde'
a.slice(-3, -1) // 'cd'
a.substring(-3, -1) // '' 取不到值
/*相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度
*/
字符串的格式化(使用`` `符号)
var name = 'tom'
var age = 18
console.log(`my name is ${name} my age is ${age}`)
// my name is jason my age is 18
布尔类型(Boolean)
布尔类型只有2个值:true和false;
null、undefined、0、NaN、空字符串的布尔值都为false。
null与undefined
null的意思是空,undefined的意思是没有定义。
var a = null
console.log(a) // null
var b
console.log(b) // undefined
对象(Object)
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。对象只是带有属性和方法的特殊数据类型。
数组
数组可以用单独的变量名来存储一系列的值。
var a = [123, 'a', 'bc']
console.log(a[1]) // 'a'
常用方法
方法 | 说明 |
---|---|
.length | 数组的大小 |
.push(ele) | 在尾部追加元素 |
.pop() | 获取尾部的元素,并移除尾部元素 |
.unshift(ele) | 在头部插入元素 |
.shift() | 从头部移除元素 |
.slice(start, end) | 切片,不会取到end位置的值 |
.reverse() | 反转 |
.join(seq) | 将数组元素连接成字符串,默认是使用','隔开元素;比如.join('|'),使用'|'隔开每个元素并连成字符串。 |
.concat(val, ...) | 连接数组 |
.sort() | 排序 |
.forEach() | 将数组的每个元素传递给回调函数 |
.splice(start,count,item) | 删除元素,并向数组添加新元素。如:splice(0,2,'abc'),删除从0开始的2个元素,并添加'abc' |
.map() | 返回一个数组元素调用函数处理后的值的新数组 |
forEach()演示
function()用于定义函数,括号内的参数为形参。
函数只有一个形参:取数组的值
var a = ['a', 'b', 'c', 'd', 'e']
a.forEach(function(arg1){console.log(arg1)})
/*
控制台打印结果:
a
b
c
d
e
*/
函数有两个形参:取:值、索引
var a = ['a', 'b', 'c', 'd', 'e']
a.forEach(function(arg1, arg2){console.log(arg1, arg2)})
/*
控制台打印结果:
a 0
b 1
c 2
d 3
e 4
*/
函数有三个形参:取:值、索引、数组
var a = ['a', 'b', 'c', 'd', 'e']
a.forEach(function(arg1, arg2, arg3){console.log(arg1, arg2, arg3)})
/*
控制台打印结果:
a 0 ['a', 'b', 'c', 'd', 'e']
b 1 ['a', 'b', 'c', 'd', 'e']
c 2 ['a', 'b', 'c', 'd', 'e']
d 3 ['a', 'b', 'c', 'd', 'e']
e 4 ['a', 'b', 'c', 'd', 'e']
*/
map()演示
map()与forEach()用法相似,只不过map()里的函数需要一个返回值来用于获取新的数组。
var a = ['a', 'b', 'c', 'd', 'e']
a.map(function(arg1){return arg1+'a'})
// 得到新数组:['aa', 'ba', 'ca', 'da', 'ea']