流程控制(语句)
分支
if () {
}
if () {
} else {
}
if () {
} else if () {
} else if () {
} else {
}
switch () {
case break;
case break;
default:
}
循环
while () {
}
do {
} while()
#适合遍历 指定次数循环
for (var i = 0; 循环条件; 循环变化) {
}
其他语句
continue
break
return
try {
} catch () {
} finally {
}
'use strict'
函数
定义方式
function 函数名(参数) {
}
var 函数名 = function(参数){
}
参数
-
形参和实参
-
参数的默认值
demo('utf-8') -
可变长参数
arguments
返回值
回调函数
自调函数
(function(){
})()
#作用域
笔记
1. JS作用域
1.1 全局作用域和局部作用域
-
函数外面声明的就是 全局作用域
-
函数内是局部作用域
-
全局变量可以直接在函数内修改和使用
-
变量,使用
var是声明,没有var是使用变量。 如果在函数内使用var来声明变量,在函数内会覆盖同名的全局变量
1.2 变量提升
-
在变量声明之前 去使用变量 会得到 undefined ,而不是报错
-
函数内,如果声明了跟全局变量同名的局部变量, 在声明之前使用改变量,得到undefined( 该变量已经是局部的啦)
1.3 作用域链
-
当一个作用域 使用某个变量时,先从本作用域中找, 如果没有去父作用域,再没有,父作用域的父作用域,一直到 全局作用域。 构成了一个作用域链
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>作用域</title> 6 </head> 7 <body> 8 <h1>作用域</h1> 9 <hr> 10 <!-- 外部导入的也是全局变量 --> 11 <script src="script.js"></script> 12 <script> 13 //全局作用域 14 var username = '小丽丽'; 15 16 17 function demo() { 18 //局部作用域 19 var age = 100; 20 21 console.log(age); //局部变量 22 console.log(username); //实用全局作用域的变量 (全局变量) 23 // var useranme = "大哈哈" username输出是undefined 24 25 username = '小哈哈'; //不加var声明直接修改 全局变量 26 } 27 console.log(username);//小丽丽 输出全局变量,注意是否全局变量被修改 28 29 demo(); //函数调用 必须要调用才能有输出 30 31 console.log(username);//输出全局变量,注意是否全局变量被修改 32 33 console.log(address) 34 </script> 35 36 37 <script> 38 console.log(username) 39 </script> 40 </body> 41 </html>