5月5日作业
如何正确的声明与定义变量?
2. 变量
2.1 变量定义
变量: 由名称和值二部分组成,变量名是对值的具名引用,是程序中临时存储数据的容器
var age = 30;变量名age,变量值30,值可用名称直接引用:age //30
变量创建分为: 变量声明, 变量赋值(初始化)二步
声明: var age;
赋值: age = 30;
变量名区分大小写: age与Age是完全不同的2个变量名
var age = 30;
var Age = 40;
age //30
Age //40
大多情况下,变量和变量名可以混用,并不会产生混淆
2.2 变量声明
关键字(var): var age; // 声明变量,age是变量名
不可删除: delete age; // false
重复声明已赋值变量无效:var x=1; var x;// x仍为1,无效
2.3 变量赋值
初始化(initialize): 变量的第一次赋值
默认值: 声明时未赋值,则引擎自动将变量值初始化为:undefined
undefined是特殊值,表示此处应该或可以有值,但是未定义或未明确赋值
声明未初始化 : 其实自动执行了二条语句
var age; // 声明时未初始化
age = undefined; // 自动初始化为undefined
检测默认值: age === undefined // true
声明并初始化: 声明与赋值可以同步进行:var age = 30;等价于
var age; // 声明
age = 30; // 赋值
未声明直接初始化
自动成为全局对象(window)属性,即全局变量,有二种访问方式:
num: 可在脚本的任何地方直接访问
window.num: 以全局对象属性方式访问
因为是对象自定义属性,所以可以删除: delete num;//true
动态类型: 通过赋值可随时改变变量值的类型
var x=1; // 数值型
x='china'; // 字符串类型
动态的值: 重复声明时还进行了赋值,则会覆盖原值
var x = 1; //声明并初始化
var x = 2; //重复声明并初始化
注意: 对已声明变量赋值时不要添加var,否则会创建新变量并初始化
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>变量的声明与定义</title> </head> <body> <script> var i;//使用var关键值声明变量,变量的默认值为undefined i=0; var j=i+2; console.log(j);//在控制台输出变量j的值 </script> </body> </html>
点击 "运行实例" 按钮查看在线实例
2. 变量的提升是原理,如果实现的?
变量提升
JavaScript引擎工作原理: 先解析代码,获取到全部已经被声明的变量,然后再逐行执行代码
导致所有变量声明语句,会直接提升到脚本(函数)头部,这种独有的现象叫:变量提升
特别提醒: 变量提升有二层含义:
变量: 必须是通过var关键字声明的变量
提升: 特指是变量声明的提升,而非变量赋值
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>变量的声明与定义</title> </head> <body> <script> console.log(a);//在打印输出语句前未声明变量,此时输出的值为undefined var a=10;//声明变量,并赋值 //上面的代码会将变量a自动提升到代码的顶部,效果如下: //var a; //console.log(a); //a=10; </script> </body> </html>
点击 "运行实例" 按钮查看在线实例
3. 分支结构有几种, 多分支与switch的实现过程
四类:
1.单双支,(if)
2.双分支(三元表达式),
3.多分支(if,else if,else if),
4.switch结构 (switch case)
多分支
var a=60; var res=''; if {条件1} { 返回结果1; } else if (条件2) { 返回结果2; } else { 返回结果3; }
点击 "运行实例" 按钮查看在线实例
switch
var a=60; var res=''; switch (true) { case (条件1): res=返回结果1; break; case (条件2): res=返回结果2; break; default:res=返回结果3; }
点击 "运行实例" 按钮查看在线实例