312 lines
5.2 KiB
Plaintext
312 lines
5.2 KiB
Plaintext
js (javascript)
|
||
|
||
作用:实现功能 & 交互的 (弱类型 & 强类型)
|
||
后面解释
|
||
|
||
不断发展 es5, es6,es7....typescript
|
||
|
||
|
||
js 两个分支:
|
||
|
||
dom 用js 操作 网页(html,css)
|
||
|
||
bom 用 js 操作 浏览器(弹窗,打开关闭标签,前进后退)
|
||
|
||
|
||
js 语言的基础
|
||
|
||
1: 变量:在程序内部可变的存储数据的空间
|
||
6221xxxxxxxxx 100元
|
||
|
||
定义变量:
|
||
关键字(??)
|
||
|
||
var(let) 变量名 = 变量的数值(可选);
|
||
|
||
变量名(常量)的命令规则:
|
||
|
||
1: 变量名必须字母开头
|
||
2: 不能使用特殊符号作为开头和中间的字符(_ $)
|
||
3: 变量名区分大小写
|
||
4: 变量命名尽量使用驼峰命名法
|
||
5: 变量命名一定要具有含义,一般使用英文翻过过来的单词,
|
||
不可以使用拼音或随手打的符号,不可以使用中文!!
|
||
|
||
简写:
|
||
var a = 1, b = 2, c = 3;
|
||
|
||
|
||
2: 常量: 在程序内部一旦被赋值后,就无法再被修改!
|
||
|
||
定义常量:
|
||
const 常量名 = 常量的数值(必须给默认数值);
|
||
|
||
|
||
|
||
|
||
类型:
|
||
|
||
就是变量里面能存储的数据种类
|
||
|
||
1 值类型(基本类型):
|
||
字符串(String): 用双引号或者单引号包裹起来的
|
||
数字(Number): 0 ~ 9 的组合
|
||
布尔(Boolean):真1 true 或者 假0 false
|
||
|
||
空(Null) 不存在就是 null
|
||
未定义(Undefined) 定义变量未赋值就是 undefined
|
||
|
||
2 引用数据类型(对象类型):对象(Object)、数组(Array)、
|
||
函数(Function)。
|
||
|
||
|
||
类型转换
|
||
|
||
|
||
|
||
运算符:
|
||
+ - * / %
|
||
|
||
++ 让变量自增 1
|
||
|
||
两种写法:
|
||
|
||
a++ 先使用变量a,之后再+1
|
||
++a 先+1,之后再使用变量a
|
||
|
||
-- 让变量自减 1
|
||
|
||
|
||
+= -= *= /- %=
|
||
|
||
|
||
= 赋值
|
||
== 判断是否相等
|
||
=== 判断数值和类型是否 都 相等
|
||
|
||
+
|
||
|
||
数学运算,条件 必须是数字
|
||
拼接字符串
|
||
es6 反引号 `我是字符串 ${变量}`
|
||
|
||
|
||
|
||
比较运算
|
||
|
||
==
|
||
===
|
||
|
||
!=
|
||
!==
|
||
|
||
> < >= <=
|
||
|
||
逻辑运算
|
||
|
||
|| 如果有一个(多个)为true,则为true,反之如果都为 false,则为
|
||
false
|
||
|
||
&& 条件表达式两边都为 true,才是 true,登录
|
||
|
||
! 真假颠倒
|
||
|
||
|
||
|
||
Object(对象 {} ):
|
||
|
||
1:存储数据的一种方式
|
||
用什么格式存储数据:
|
||
|
||
对象名字key:对象数值value
|
||
|
||
2:类似java中的class,是一种编程的思想
|
||
1: 面向对象
|
||
后面讲解
|
||
封装
|
||
继承
|
||
多态性
|
||
|
||
里面包含了两种类型:属性(参数) & 方法(功能)
|
||
|
||
2: 面向过程
|
||
|
||
三种定义方式:
|
||
|
||
参考代码!!
|
||
|
||
|
||
Array 数组:
|
||
|
||
定义数组:
|
||
|
||
下标(数字0~无限):数值
|
||
|
||
|
||
// 控制(条件)语句,循环语句
|
||
|
||
|
||
控制(条件)语句
|
||
|
||
if (条件) {
|
||
// 符合 上面 条件,就运行这里写的代码
|
||
} else {
|
||
// 不符合 上面 条件,就运行这里的代码
|
||
}
|
||
|
||
三元(目)运算
|
||
2 < 10 ? console.log("小于10") : console.log("不小于10")
|
||
|
||
|
||
if () {
|
||
if () {
|
||
if () {
|
||
// kkk
|
||
}
|
||
}
|
||
}
|
||
n
|
||
|
||
if () {
|
||
|
||
} else if () {
|
||
|
||
} else if () {
|
||
|
||
} else {
|
||
|
||
}
|
||
|
||
|
||
|
||
switch (需要判断的变量) {
|
||
case 变量可能存在的值 1:
|
||
// 你的代码
|
||
break;
|
||
case 变量可能存在的值 2:
|
||
// 你的代码
|
||
break;
|
||
case 变量可能存在的值 3:
|
||
// 你的代码
|
||
break;
|
||
|
||
default:
|
||
// 上面所有情况都不满足的时候执行这个
|
||
break;
|
||
|
||
}
|
||
|
||
|
||
循环语句
|
||
|
||
for (循环起始变量;循环的结束条件;循环自增控制) {
|
||
|
||
}
|
||
|
||
|
||
do {
|
||
|
||
} while ()
|
||
|
||
|
||
while {
|
||
|
||
}
|
||
|
||
|
||
js function (函数,方法)
|
||
|
||
作用:实现代码的 封装 和 复用
|
||
|
||
怎么定义方法?
|
||
|
||
1 function 方法名(参数1,参数2,参数3....) {
|
||
|
||
}
|
||
|
||
2 var 变量名 = function () {
|
||
|
||
}
|
||
|
||
简写:es6 里面更新的新的函数写法
|
||
|
||
var 变量名 = () => {
|
||
// 如果代码只有一行,花括号可以直接删除
|
||
}
|
||
|
||
参数: 必填参数,可选参数
|
||
默认值
|
||
|
||
参数的另外一种接受方式:
|
||
arguments array
|
||
适用于方法参数很多的情况,提高编写代码的销量
|
||
|
||
使用(调用)方法
|
||
方法名()
|
||
|
||
|
||
注意:先定义后使用
|
||
|
||
|
||
函数的返回值:
|
||
return 方法的运行结果
|
||
|
||
函数的作用域:
|
||
|
||
1:全局
|
||
2:局部
|
||
|
||
|
||
变量提升
|
||
|
||
|
||
闭包
|
||
|
||
什么是闭包?
|
||
|
||
函数内部的函数访问外部变量的过程
|
||
|
||
为什么需要闭包?
|
||
|
||
需要缓存数据
|
||
|
||
优点:可以缓存数据,避免重复计算,节省计算机内存资源
|
||
缺点: 如果存储的数据过多,而有未及时清理会导致内存泄漏
|
||
|
||
|
||
回调函数:
|
||
|
||
什么是回调函数?
|
||
|
||
为什么需要回调函数?
|
||
|
||
同步编程
|
||
|
||
异步编程
|
||
|
||
回调地狱
|
||
|
||
|
||
promise
|
||
|
||
|
||
|
||
|
||
事件:
|
||
|
||
由三个东西构成
|
||
|
||
事件源
|
||
事件类型
|
||
事件处理函数
|
||
|
||
三种方法连接:
|
||
|
||
|
||
|
||
虚拟dom
|
||
|
||
真实dom
|
||
|
||
影子dom
|