1、数据类型
1.1、字符串
严格检查模式
//通常使用定义变量
var i = 1;
//也可声明变量的关键字,如下直接赋值变量;
i = 1;
console.log(i);
但直接赋值所得的变量为全局变量,为防止出现问题,所以在ES6语法中加入 ‘use strict’; 严格审查模式。
'use strict’使用,通常都是把代码写在script代码第一行
使用严格审查模式后,控制台显示结果为:
定义局部变量推荐使用let关键字定义:
在’use strict’模式下,var定义变量也是局部变量,只是不太推荐。
字符串类型
1、正常字符串’’ 或""包裹在内
2、转义字符,使用 \
\' //输出'
\n //回车换行类特殊字符
3、多行字符串编写
var i = `
12345
123
7
xiaoming
`;
console.log(i);
输出结果:
使用反引号``包裹定义。
4、模板字符串
let name = '小明';
let age = 18;
let msg = `你好,我叫 ${name},今年${age}岁了`;
console.log(msg);
控制台打印结果:
使用美元==$和{}==符号进行拼接
5、字符串长度
src.length
6、字符串的可变性及不可变性
7、大小写转换
student.toUpperCase() //转大写
'STUDENT'
student.toLowerCase() //转小写
'student'
8、获取字符串中字符下标
student.indexOf('t')
1
9、substring()
该方法获取字符为[),前包含后不包含。
student.substring(1)
'tudent'
student.substring(1,3)
'tu'
1.2 数组
定义数组:
两种方法
var arr = new Array(1,2,3,4,5,6,"1","2");
或
var arr = [1,2,3,4,5,6,"1","2"];(推荐)
1、长度
arr.length
长度可改变,给arr.length赋值,数组内值也会改变
2、indexOf,通过元素获取下标
arr.indexOf(5)
4
字符串中1和"1"不同,打印出来的下标也不同。
3、slice(),截取数组的一部分,相当于string中的substring
arr.slice(1)
(7) [2, 3, 4, 5, 6, '1', '2']
arr.slice(1,5)
(4) [2, 3, 4, 5]
4、push(),pop() 数组尾部推入和弹出
arr.push('a','s') //推入
10
arr
(10) [1, 2, 3, 4, 5, 6, '1', '2', 'a', 's']
arr.pop() //推出
's'
arr
(9) [1, 2, 3, 4, 5, 6, '1', '2', 'a']
5、unshift(),shift() 数组首部推入和推出
6、sort() 排序
var arr1 = ['C','A','B']
arr1.sort()
(3) ['A', 'B', 'C']
7、元素反转 reverse()
(3) ['A', 'B', 'C']
arr1.reverse()
(3) ['C', 'B', 'A']
8、concat()
['C', 'B', 'A']
arr1.concat([1,2,4])
(6) ['C', 'B', 'A', 1, 2, 4]
arr1
(3) ['C', 'B', 'A']
concat()只是返回拼接过的新数组,不会改变原数组
9、连接符 join
//使用特定字符串拼接打印数组
arr1.join('-')
'C-B-A'
10、多维数组
arr=[[1,2],[3,4],['5','6']];
arr[1][1]
4
3.3 对象
//对象定义格式 键值对方式描述属性 xxxx : xxxx
//最后一个属性不加逗号 键 : 值
var person ={
属性名 : 属性值,
属性名 : 属性值,
属性名 : 属性值,
属性名 : 属性值
}
var person ={
name : 'zhangsan',
age : 3,
email : '123456@qq.com',
score : 0
}
JS的对象{…}表示一个对象,键值对描述属性
JS中所有的键都是字符串,值是任意属性
1、对象赋值
person.name
'zhangsan'
person.name='xiaoming'
'xiaoming'
person.name
'xiaoming'
2、使用一个不存在的对象属性,不会报错
person.home
undefined
3、动态删减属性 delete删除属性
delete person.name
true
person
{age: 3, email: '123456@qq.com', score: 0}
4、动态添加属性
person.haha='haha'
'haha'
person
{age: 3, email: '123456@qq.com', score: 0, haha: 'haha'}
5、判断属性值是否在对象内 ‘xxxx’ in xxxx
'age' in person
true
'toString' in person //由于对象的继承,所以第6个
true
6、判断一个属性值是否是该对象所拥有 hasOwnProperty()
person.hasOwnProperty('age')
true
person.hasOwnProperty('toString')
false
3.4流程控制
if判断循环、while、do…while以及for循环语法都与Java中相同。