1、JavaScript数据类型
1.1字符串
1、正常字符串使用单引号或双引号包裹
2、转义字符\
\`
\n
\t
\u4e2d \u#### Unicode字符
\x41 Ascll字符
3、多行字符串编写
//esc键下面`
var jj = `
hello
hi
`
4、模板字符串
let name = "liuliu";
let age = 3;
ley jj = `哈喽啊,${name}`
5、字符串长度
str.length
6、字符串的可变性,不可变
7、大小写转换
//
student.toUpperCase()
student.toLowerCase()
8、student.indexOf(‘t’)
9、substring
[)
student.substring(1)//从第一个字符串截取到最后一个字符串
student.substring(1,3)//[1,3)
1.2数组
Array可以包含任意数据类型
var arr = [1,2,3,4,5,6]//通过下标取值和赋值
arr[0] //==>1
1、长度
arr.length
注意假如给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失
2、indexOf,通过元素获取下标索引
arr.indexOf(2)
1
字符串"1"和数字1是不同的
**3、slice()**截取Array的一部分,返回一个新数组,类似于String中的substring
4、push(),pop() 尾部
push:压倒尾部
pop:弹出一个尾部元素
5、unshift(),shift() 头部
6、排序sort()
(3) ["B","A","C"]
arr.sort()
(3) ["A","B","C"]
7、元素反转reverse
(3) ["A","B","C"]
arr.reverse()
(3) ["C","B","A"]
8、concat()
(3) ["A","B","C"]
arr.concat([1,2,3])
(6) ["A","B","C",1,2,3]
arr
(3) ["A","B","C"]
注意:concat()没有修改数组,只是会返回一个新的数组
9、连接符join
打印拼接数组,使用特定的字符串连接
(3) ["A","B","C"]
arr.join('-')
"A-B-C"
10、多维数组
arr = [[1,2],[3,4],["5","6"]];
arr[1][1]//==>4
数组:存储数据
1.3对象
若干个键值对
var 对象名 ={
属性名:属性值;
属性名:属性值;
属性名:属性值;
}
var a = {
name:"xiaomin",
age:18,
phone:18888881888
}
js中对象,{…}表示一个对象,键值对描述属性,多个属性间用逗号分隔
JavaScript中的所有的键都是字符串,值是对象
1、对象赋值
a.name = "xiaomin"
"xiaomin"
a.name
"xiaomin"
2、使用一个不存在的对象不会报错 undefined
a.xixi
undefined
3、动态的删减属性,通过delete删除属性
delete a.name
true
a
4、动态的添加,直接给新的属性添加值即可
a.xixi = "xixi"
"xixi"
a
5、判断属性值是否在这个对象中 xxx in xxx
'age' in a
true
//继承
'toString' in a
true
6、判断一个属性是否是这个对象自身拥有的 hasOwnPropert()
a.hasOwnPropert('toString')
false
a.hasOwnPropert('age')
true
JavaScript权威指南3.8
2、JavaScript类型转换
1、typeof()方法
//typeof()获取变量数据类型
var num = 10;
console.log(typeof num);//==>Number
var str = "sj";
console.log(typeof str)//==>String
var boo = true;
console.log(typeof boo);//==>boolean
var u = undefined;
console.log(typeof u);//==>undefined
var n =null;
console.log(typeof n);//==>object
2、变量.toString
数字类型转换为字符串
var num = 10;
var str =num.toString();
console.log(str);
console.log(typeof str);
3、string(变量)
console.log(String(num));
注意:toString()和String使用方法不一样
4、隐式转换
// + 拼接字符串方法实现转换效果 隐式转换
// 和字符串拼接出来的都是字符串
console.log(num + '');
5、parseInt()
可以把一个字符串转换为数字,得到是一个整数
console.log(parseInt("3.1415"));//==>3取整
console.log(parseInt("3.333333"));//==>3
console.log(parseInt("30fm"));//==>30 会去掉后面的字母
console.log(parseInt("cc30fm"));//==>NaN 字符型!
6、parseFloat()
把一个字符串转换为数字型,返回一个浮点数
console.log(parseInt("3.1415"));//==>3.1415
console.log(parseInt("3.33"));//==>3.33
console.log(parseInt("30fm"));//==>30 会去掉后面的字母
console.log(parseInt("cc30fm"));//==>NaN
7、Number()
字符串转换为数字
var str = "123";
console.log(Number(str));//123
console.log(Number("123"));
//算术运算符- * / 隐式转换
console.log("123" - 11);//121
console.log("123" * 2);
8、Boolean()
//Boolean()可以将任意类型的值转为布尔值
// 除了undefined,null,0,NaN,''空字符串
console.log(Boolean(undefined));// false
console.log(Boolean(null));
console.log(Boolean(0));
console.log(Boolean(''));// false
console.log(Boolean(true));//true
console.log(Boolean(false));//false
// 注意,所有对象(包括空对象)的转换结果都是true,
// false对应的布尔对象new Boolean(false)也是true
console.log( new Boolean(false));//true
9、toExponential()
根据小数点后的指定的有效数字转换为指数形式的字符串
10、日期类型
//date
var date = new Date();
console.log(date.toString()); // Fri May 28 2021 19:29:23 GMT+0800 (中国标准时间)
console.log(date.toLocaleString()); // 2021/5/28 下午7:29:23
console.log(date.toLocaleDateString()); //2021/5/28
console.log(date.toLocaleTimeString()); //下午7:29:23
数组类型的 toLocaleString 就是将数组中的数值类型和日期类型分别按 toLocaleString 转换为字符串,再形成整体字符串
自动转换
当一个值为字符串,另一个值为非字符串,则后者转为字符串。