JavaScript-脚本语言,必须精通javasript
目前开发环境是es6,但是线上环境是es5,所以需要进行打包
----------------------- 快速入门------------------------
内部标签:
<script>
alert('弹出框');
</script>
必须要成对出现
外部引入
<script src="js/qj.js">
</script>
基本语法:
与java基本一致,严格区分大小写
console.log(score);-------------------------在浏览器的控制台打印出变量值
控制台中的各大模块:
Elements:复刻网站
Console:调试JS
Sourse:打断点
Network:抓包
Application:查看网站的cookies
JS中的数据类型:
不区分小数和整数,Number
NaN:不是一个整数,Not a Number
结果运算符:
=是赋值
==是等于,但是只判断值,不判断类型
===是绝对等于
尽量避免使用浮点数进行运算,存在精度损失问题
null和undefined
null是空值,undefined是未定义
JS中数组可以放不同的类型对象
如果数字下表越界,那么console.log()就会报undefined的错误
对象:
var person={
name:"王正",
age:3,
tags:['a','b']
}
变量
var a1=1;
‘user strict’ : 严格检查模式,检查变量有没有定义,必须写在第一行
局部变量建议使用let来定义
let a=1
-----数据类型------
字符串
1)正常的字符串使用单引号或者双引号包裹
2)转义字符
’ 是字符
\n是换行
\t是table
\u4e2d指的是unicode编码
3)``这个是多行字符串----------------------在table上面的键
字符串是不可变的
student.substring(1)-------从第1个开始截取
student.substring[1,3)------截取第一个到第三个,包含1不包含3
数组
可以包含任意数据类型,通过下标取值和赋值
**注意!**数组大小是可以发生变化的,但是字符串不可以且不可修改
字符串中的1和数字1是不同的
slice是截取字符串的一部分,返回一个新的数组,类似substring
push是压入到尾部,pop弹出尾部的一个元素
unshift是压入到头部,shift弹出头部的一个元素
sort排序,reverse是元素反转
contat元素拼接
对象 属性名都是字符串
var person={
name:"王正",
age:3,
tags:['a','b']
}
js中的{}是用于描述对象,键值对表示属性,逗号隔开,最后一个不加逗号,可以动态删除对象属性,也可以动态添加
Map、Set
var map=new Map[['tom',100],['Jack',80],['rose',77]];
var name=map.get('tom');
map.set('admin',99);
console.log(name);
Set无序不重复集合
set.add(2);-----------添加元素
set.delete(1);------------删除
set.has(3)--------------是否包含某元素
------------iterator迭代器-------------
遍历数组
var arr=[1,23,4,5,6];
for (var x of arr){
console.log(x);
}
遍历map
var map=new Map[['tom',100],['Jack',80],['rose',77]];
for (let x of map){
console.log(x);
}
所有的迭代全部都用for of
----------JavaScript中的函数----------
function a(x){
if(x>=0){
return x;
}else{
return -x;
}
}
一旦执行到return,就意味着方法的结束
function(x){…}是一个匿名函数,直接abs()就可以调用了
arguments代表了传进来的所有参数,包括超出规定的参数
rest判断了除了规定参数之外传进来的所有参数
function体里的变量声明后,在方法外是不能直接使用的
内部函数可以访问外部函数的成员
函数查找变量是从自身函数开始,再由内向外的
一般方法都是直接先定义,后续再进行赋值
alert()这个函数本身就是Windows的一个函数
为了减少导入过多的JS文件引起的全局变量命名冲突问题,把所有自己代码中用的都放在一个集合中,jquery就是这么处理的
局部作用域let,修饰之后会解决变量出了作用域的问题,让它待在自己的作用域之内。let就是用于修改变量的。
const常量
只读变量,不允许修改