1. 快速入门
1.1 引入javascript
script.js
alert("hello,world!")
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--script标签内,写javascript代码-->
<!-- 内部引入-->
<script>
alert("hello,world!")
</script>
<!--外部引入,script标签必须成对出现-->
<script src="script.js"></script>
<!--不用显式定义type,也默认是javascript-->
<script type="javascript"></script>
</head>
<body>
</body>
</html>
1.2 基本语法
<!--javascript严格区分大小写-->
<script>
// 1.定义变量 变量类型 变量名 = 变量值;
var score = 80;
// 2. 条件控制
if(score>=70){
alert("优")
}else if(score<60){
alert("差")
}else{
alert("其他")
}
// console.log(score) 在浏览器的控制台打印变量!
</script>
浏览器必备调试须知:
1.3 严格检查格式
<!--
前提:IDEA需要设置支持ES6语法
‘use strict’:严格检查模式,预防Javascript语法错误,必须写在第一行
局部变量建议使用let定义
-->
<script>
'use strict';
// 全部变量
let i = 1
</script>
2. 数据类型
2.1 字符串类型
- 正常字符串使用单引号、双引号包裹
- 转义字符\
\'
\n
\t
\u4e2d \u#### Unicode编码
Asc11字符
- 多行字符串编写
<script>
'use strict';
// tab上面 esc下面的那个符号
var masg = `
hello
world
!
`
</script>
- 模板字符串
let name = "kim";
let age =26;
let mag = `hello,${name}`
- 字符串长度
str.length
- 字符串的可变性:不可变性
undefined
console.log(student[0])
VM394:1 s
undefined
student[0]=1
1
console.log(student[0])
VM537:1 s
undefined
- 大小写转换
//这里是方法不是属性
student.toUpperCase()
student.toLowerCase()
- student.infexOf(‘t’)
- substring
[)
student.substring(1) // 从第一个字符截取到最后一个字符
student.substring(1,3) // [1,3)
2.2 数组
Array可以包含任意的数据类型
var arr = [1,2,3,4,5]; //通过下表存取和赋值
arr[0]
arr[0] = 1
- 长度
arr.length
注意:通过给arr.length。可任意改变数组大小;如果估值过小,会对视元素
- slice(0 截取Array的一部分,返回一个新的数据
- push() pop()
push:压入尾部
pop:弹出尾部的一个元素
unshift: 压入头部
shift: 弹出头部元素
- 排序
arr = ["C","A","D"]
arr.sort()
// ["A","C","D"]
- 元素反转
arr = ["A","C","D"]
arr.reverse()
// ["D","C","A"]
- concat(): 并没有修改数组,只是返回一个新的数组
arr = ["a","b","c"]
(3) ['a', 'b', 'c']
arr.concat([1,2,3])
(6) ['a', 'b', 'c', 1, 2, 3]
arr
(3) ['a', 'b', 'c']
- 连接符join 打印拼接数组,使用一个特定的字符串连接
arr.join('-')
'a-b-c'
- 多维数组
arr = [[1,2],[2.3],[3,4]];
2.3 对象
<script>
'use strict';
var person={
name: "kim",
age: 26
}
</script>
js中的对象{。。。}表示一个对象,属性之间用,隔开,最后一个属性不加,
- 对象值
person.age
26
person.name
'kim'
- 使用一个不存在属性,不会报错
person.emai
undefined
- 动态的删减
delete person.age
true
person
{name: 'kim'}
- 动态的添加
person.age = 26
26
person
{name: 'kim', age: 26}
- 判断属性值是否在这个对象中
'age' in person
true
//继承
toString in person
false
'toString' in person
true
- 判断一个属性是否是这个对象自身拥有的
person.hasOwnProperty('toString')
false
person.hasOwnProperty('age')
true
2.4 分支和循环
if判断
if(score>=70){
alert("优")
}else if(score<60){
alert("差")
}else{
alert("其他")
}
循环
var age = 10;
while(age<20){
age++;
console.log(age)
}
2.5 Map和Set集合
Map
var map = new Map([["kim",100],["anna",90]]);
var name = map.get('anna')
console.log(name)
map.set('tom',95); // 添加
map.delete('anna');// 删除
Set:无序不重复集合
var set = new set([1,2,3,3,3,4]);
set.add(2); //添加
set.delete(1); //删除
console.log(set.has(2)); //是否包含这个元素