[toc]
js基础
1.js简介 -- javascript
ECMAscript5
ECMAscript6 -- vue.js react ..
由三个部分组成
1 ECMAscript5的核心 js语言
2 BOM 浏览器对象模型 js操作浏览器,做出对应的一些效果
3 DOM 文档对象模型 -- HTML文件
2.js代码引入方式
三种方式
1.head标签的script标签里面(alert('xx'), confirm('xx'))
2.body标签的script标签里面
3.外部文件引入的方式来使用
3.1创建一个.js结尾的文件,写上咱们的js代码
比如:alert('are you ok?');
3.2在想使用这个js代码的html文件中,head标签或者body标签下面或者上面写下面的内容
<script src="01test.js"></script>
第一种方式 head标签中script标签中写js代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
alert('are you ok?')
</script>
</head>
<body>
</body>
</html>
效果图

第二种方式 body标签中的script标签中写js代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
alert('are you ok?')
</script>
</body>
</html>

第三种方式 外部文件引入方式
第一步、先创建一个.js结尾的文件,内容如下
alert('are you ok');
第二步、html文件中引入这个js文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script src="JavaScript.js">
alert('are you ok?')
</script>
</body>
</html>

3.js变量
定义方式一(在函数中是局部变量,在函数外是全局变量)
var 变量名 = 值;
定义方式二(都是全局变量)
变量名 = 值;
4.js注释
单行注释 //单行注释内容
// 改变标题:
document.getElementById("myH").innerHTML = "我的第一张页面";
// 改变段落:
document.getElementById("myP").innerHTML = "我的第一个段落。";
多行注释 / 多行注释内容/**
/*
下面的代码会改变
网页中
id = "myH" 的标题
以及 id = "myP" 的段落:
*/
document.getElementById("myH").innerHTML = "我的第一张页面";
document.getElementById("myP").innerHTML = "我的第一个段落。";
5.js数据类型
5.1 number类型(整数,浮点数)
var n = 11;
var n2 = 11.11;
查看数据类型 typeof 变量名;
typeof n; -- number类型
变量声明,但没有赋值的时候,变量的值为undefined

5.2 string类型(字符串)
示例:
var a = 'abcdef';
typeof a; --> "string"
var a = new String('s');
typeof a; --> "object"
字符串的操作方式
定义一个字符串
var s = '好好学习,天天向上';
索引取值
s[1] --> '好'
移除空格,不能移除字符串中的空格
s.trim(); #去除两端的空格
s.trimLeft(); #去除左边的空格
s.trimRight(); #去除右边的空格
根据索引获取字符
//语法
var value = name.charAt(index)
//示例
var s = 'hello';
s.charAt(4); --> 'o'
根据索引获取子序列(切片)
//语法
var values = name.substring(开始位置,结束位置)
//示例
var s = 'hello';
s.substring(1,3); --> "el"
5.3 布尔类型(boolean类型)
var a = true;
var b = false;
typeof a;
"boolean"
js的基础数据类型都有 布尔值属性, []--false 0,,'',undefined,null,NaN
字符串转数字:
var a = '11';
parseInt(a);
var a = '23abc';
parseInt(a); 23
var a = 'asdfabc';
parseInt(a); -- NAN -- not a number
typeof NaN; -- "number"
NaN === NaN; -- false
NaN == NaN; -- false
5.4 undefined和null类型
undefined 变量声明了,但是没有赋值,此时这个变量是undefined类型
//示例
var b;
b
undefined
typeof b;
"undefined"
null : 变量不用了,就可以给变量赋值为null,--- object类型
//示例
var b = null;
undefined
b
null
typeof b;
"object"
5.5 数组(array)
var name = [1,2,3];
//括号中的3表示数组有3个元素
names;
(3) [1, 2, 3]
//⚠️,数组类型也是字符串
typeof names;
"string"
5.5.1 索引取值,从0开始
//数组a中的元素
names = [1,2,3];
(3) [1, 2, 3]
//索引取值,从0开始
names[0];
1
5.5.2 尾部追加元素
//数组a中的元素
names = [1,2,3];
(3) [1, 2, 3]
//追加数字
names.push(5);
4
names;
(4) [1, 2, 3, 5]
//追加字符串
names.push('啊');
5
names;
(5) [1, 2, 3, 5, "啊"]
5.5.3 尾部移除元素
//数组names中的元素
names;
(5) [1, 2, 3, 5, "啊"]
//移除尾部元素
names.pop();
"啊"
names;
(4) [1, 2, 3, 5]
5.5.4 头部插入元素
//数组names中的元素
names;
(4) [1, 2, 3, 5]
//头部插入元素
names.unshift(9);
5
names;
(5) [9, 1, 2, 3, 5]
5.5.5 头部移除元素
//数组names中的元素
names;
(5) [9, 1, 2, 3, 5]
//头部移除元素
names.shift();
9
names;
(4) [1, 2, 3, 5]
5.5.6 在指定索引位置插入元素
//语法
names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个))
//数组names中的元素
names = [1,2,3,5,6];
(5) [1, 2, 3, 5, 6]
names;
(5) [1, 2, 3, 5, 6]
//在指定索引位置插入元素,这里其实与删除差不多,只不过是第二个参数删除个数为0,不删除元素,插入元素
names.splice(1,0,'呵呵');
[]
names;
(6) [1, "呵呵", 2, 3, 5, 6]
5.5.7 在指定索引位置替换元素
//语法
语法和在指定位置插入元素相同,只不过在指定位置插入元素删除的元素个数为0,而在指定索引位置替换元素是删除元素并替换
names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个))
//数组names中的元素
names;
(5) [1, 2, 3, 5, 6]
//在指定索引位置替换元素,从索引1开始,删除1个元素,并替换为呵呵
names.splice(1,1,'呵呵');
[2]
names;
(5) [1, "呵呵", 3, 5, 6]
5.5.8 在指定索引位置删除元素
//语法
names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个))
//数组names中的元素
names;
(5) [1, 2, 3, 5, 6]
//示例1,只删除指定索引处的元素,不替换
names.splice(1,3);
(3) [2, 3, 5]
names;
(2) [1, 6]
//示例2,删除指定索引处的元素,并替换
names.splice(1,3,'呵呵');
(3) [2, 3, 5]
names;
(3) [1, "呵呵", 6]
//示例3,删除指定索引处的元素,并替换多个,看效果
names.splice(1,3,'呵呵','哈哈',666);
(3) [2, 3, 5]
names;
(5) [1, "呵呵", "哈哈", 666, 6]