day11
基本语法
在html的使用
<script></script>
注释
//
/* */
指令结束符
;
换行
输出
console.log()
document.write()
alert()
变量
var 变量名 = 值;
var 变量名; //默认值undefind
var v1=100,v2=200,v3=400; //同时声明多个变量
变量名的命名规范
由数字、字母、下划线和$ 组成,不能以数字开头
严格区分大小写。 建议使用小驼峰命名法
变量名不能使关键字和保留字
JS程序
-
获取页面中元素对象
getElementById()
-
对元素对象进行操作 属性
-
事件 onclick
-
函数
数据类型
原始类型 Number String Boolean Null Undefined
对象类型 Object Array ...
Number 数字
NaN isNaN(参数)
String
-
声明方式 : 单引号 双引号 反引号(ES6) ${}
Boolean
-
true false
Null和Undefined
-
函数的默认返回值是null
-
没有赋值的变量是undefined
数据类型转换
-
自动转换: 取决于运算符
-
强制转换: Number() String() Boolean()
弱类型 和 强类型 动态类型和静态类型 (了解)
-
动态类型: 不需要提前为变量指定 数据类型
-
静态类型: 需要为变量提前指定 数据类型
-
强类型: 数据类型不能自动转换
-
弱类型: 数据库可以自动转换
JavaScript: 弱类型 动态类型
Python: 强类型 动态类型
运算符
分类
-
按操作数的个数: 一元运算符(++/ -- 正号和负号) 二元运算符(+-/*) 三元运算符(?:)
-
按功能
算术运算符
+ - * / % ++ --
比较运算符
==
=== 建议
!=
!==
> >= < <=
逻辑运算符
&&
||
!
位运算符怒
赋值运算符
=
+=
-=
*=
/=
%=
其他运算符
?:
typeof
+ 字符串连接符
in
instanceof
void
优先级
课堂笔记
1 流程控制
1.1 条件语句 分支结构
单向分支
if (条件表达式) {
code
双向分支
if (条件表达式){
} else {
}
多向分支
if (条件表达式) {
} else if(条件表达式) {
} else if (条件表达式) {
} else {
}
switch (条件表达式) {
case 表达式可能的结果:code
嵌套分支
if (条件表达式) {
if (条件表达式) {
} else {
}
} else {
if (条件表达式) {
}
}
1.2 循环语句
while循环
while (循环条件) {
//循环体
}
do...while 循环
do {
//循环体
} while (循环条件)
for 循环
for (变量定义;循环条件; 变量变化) {
//循环体
}
1.3 其他语句
跳转语句
continue; 跳出当前循环 继续下一次
break; 结束循环
return; 结束函数
异常
try {
} catch(err) {
}
try {
} catch(err) {
} finally {
}
catch
相当于python的except
严格模式
//写在所有代码的最前面
//开启严格模式
‘use strict’
-
严格模式下 声明不加
var
会报错 -
eval()
在严格模式不能用
1.4 注意
-
当分支语句和循环语句 结构体(
{}
内) 只有一行代码的时候,可以省略{}
if (条件)
代码
2 函数
2.1 定义函数
//function 关键字方式
function 函数名(参数1, 参数2) {
code
2.2 函数特点
-
函数名就是变量名
-
函数调用 必须加
()
-
关键字方式定义的函数, 会存在函数提升 (在函数定义的前面 调用函数)
2.3 函数的参数问题
形参和实参
-
实参数量>形参数量 多给的实参会被忽略
-
实参数量<形参梳理 多出的形参,默认值
undefined
参数默认值
//ES6 新增的语法
function demo(a, b=默认值) {
}
//有默认值的参数 一定在后面
可变数量的参数
arguments对象 可以获取所有的实参
只能在函数中使用
arguments是类数组对象,用法同数组,可以使用for循环遍历
2.4 return
-
return 可以结束函数
-
return返回值
-
js return 只能返回一个值
2.5 回调函数
-
函数的参数 还是 函数
2.6 自调函数
(function(){
})();
(function 函数名(){
})()
//如果多个自调函数连续写, 中间必须加 ; 否则报错
//产生局部作用域
//有效避免全局变量污染
2.7 递归
总结
-
流程控制 分支: 单向分支 双向分支 多向分支(else if switch..case) 嵌套分支
-
流程控制 循环: while循环 do...while循环 for循环
-
其他控制语句: 跳转、异常、严格模式
-
函数 (定义、特点、参数 、自调、回调、递归)
要点
-
if switch
-
while for
-
try use strict
-
function demo (q1,q2) {} var fn = function(q1,q2) {} arguments.length
-
回调 参数是函数 应用场景:数组排序
-
自调 局部作用域
-