1.基本使用
1.1 使用
1.内部标签
2.外部标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- script写代码-->
<script>
//<!-- 弹窗-->
alert("hello world");
</script>
<!--外部引入-->
<script src="js/first.js"></script>
</head>
<body>
</body>
</html>
2.基本语法入门
1.变量只有var
变量类型 变量名 = 变量值;
可以用中文定义变量
2.条件控制
3.注释
//单行注释 /** **/多行注释
4.调试
在浏览器的console中,
console.log(变量) 在浏览器的控制台打印。
在sources中查看源码,
并可在其中打断点调试。(刷新页面即可执行代码)
3.数据类型
数值,文本,图形,音频…
number
js不区分小数和整数,Number
123//整数
123.1//浮点数
1.21321e3//科学计数法
Infinity//无限大
字符串
“aasd“
‘asd’
布尔值
ture,false
逻辑运算
&&
||
! 取反
比较运算符
= 等于
==等于
=== 绝对等于 (类型一样,值也一样,为true)
**不要使用 == **
NaN与所有的数值都不相等,包括自己
只能通过 isNaN(NaN)来判断是否相等
小数运算会存在精度损失,用
Math.abs( )<0.00000001
来确定。
null 和 undefined
null为空,undefined为未定义
数值
一系列相同类型的集合,eg:
var arr = [1,2,3,null,"hello world",true];
new Array[1,2,3,null,"hello world",true];
保证代码的可读性采用第一种。
JavaScript没有数组越界,只有undefined。
对象
为大括号,eg:
var person = {
name:"MCL";
age:3;
tags:[1,2,3,"dasd"]
}
person.name
> MCL
每个属性用逗号隔开,最后一个不需要添加。
(这里很像结构体)
3.严格检查模式strict
不用 var 声明为全局变量,很不规范
用 let 定义局部变量
'use strict';
//严格定义
//idea要支持ES6
//必须写在第一行
//养成好习惯
4.数据类型-字符串
1.正常字符串用单引号和双引号包裹
2.注意转义字符
3.多行字符串编写 ( ` )
var src = `
hello
asd
asd
dsfsd
`;
4.模板字符串
let name = "MCL";
let age = 19;
let all = `nihao,${name}`;
5.字符串长度
console.log(str.length)
6.字符串的可变性,”不可变“
7.大小写转换
//注意是方法不少属性
str.toUpperCase()
str.toLowerCase()
8.获取指定下标
src.indexof('')
9.截取字符串
src.substring(1,4)
包含前面,不包含后面,[,)
5.数据结构-数组
Array可以包含任意的数据类型
1.长度
arr.length
给arr.length赋值,数组大小就会发生变化~如果赋值过小,元素就会丢失
2.indexOf(),获得下标索引
字符串的”1“和1不同
3.slice(2,5) 截取Arry的一部分,返回一个新数组 ,左闭右开
4.push,pop
Arr.push()为往里面压入元素(尾部)
pop()从尾部弹出元素
5 unshift() , shift() 头部
ushift() 压入头部
shift() 弹出头部
6.sort()排序
7.元素反转 reverse()
8 concat([1,2,3])拼接
并未修改原数组,为返回一个新数组
9 join 连接符号
arr.join(’-’)
10 多维数组
6.对象
若干个键值对
var person ={
属性名 = 属性值,
..*
}
最后一个不加逗号
使用一个不存在的对象属性,不会报错 只是undefined
删除 delete
delete person.name
> true
增加,直接添加
判断属性值是否在这个对象中
xxx in xxx
6.流程控制
if判断
if{
}
if else{
}
else{
}
while循环
while()
{
}
for循环
for( ; ; ){
}
do-while循环
do{
}while()
数组循环 for in
for(var num in age){
}
7.Map和Set
Map 键值对
var map = new Map([[1,2],["asd",2340]]);
map.get('tom')
添加键值对
map.set(1,2)
删除键
map.delete(1)
Set 无序不重复集合
var set = new Set([1,2,34]);
set.add(4);//添加
set.delete(34);//删除