为了存储和复用一个数据,方便修改当声明一个变量的时候 var a = 10 ,会在内存中开辟以一个空间 存放变量名和变量值 ,会将变量和值存放到window对象中 a:10
全局作用域中的变量 可以在该脚本文件中的任何地方访问到2. 局部变量
局部作用域中的变量 局部变量只能在该函数中访问到注意在局部作用域中(函数中)声明变量 如果未加关键字 var || let || const 这个变量就会变为隐式全局变量
声明关键词 var let const命名规范
变量名区分大小写
一般以字母、$、下划线、数字组成(不能以数字开头)
不能使用系统关键词和保留字
一般遵循驼峰命名法(第一个单词首字面小写后面单词首字母大写)
变量名需得有意义
变量预解析只会将变量的声明提升到该作用域的最前面console.log(a) // undefinedvar a = 10;=>var a console.log(a) // undefineda = 10 2. 函数预解析
变量预解析只会将变量的声明提升到该作用域的最前面b()function b(){}=>function b(){}b()
计算机里面有很多数据,JS为了方便调试与使用,提供了一些对应的辅助方法,将它们做了归类,就是数据类型。
NaN不等于任何值,包括它自己
+:加-:减
+= <a+=1 => a = a+1>自增自减运算符
-= <a-=1 => a = a-1>
"=" <a=1 => a = a*1> (乘等于)
/= <a/=1 => a = a/1>
%= <a%=1 => a = a%1>
==
===
两个等于和三个等于的区别
两个等于只对比值 三个等于对比值和数据类型
用布尔值来判断条件真假
null 表示一个值被定义了,定义为null
undefined 表示一个值声明了 但是未定义(未赋值)
所以设置一个值为null是合理的 设置一个值为undefined是不合理的
null == undefined // true
null === undefined // false
说明 null 和 undefined 在转boolean 的时候都为 0 值相同 所以 == 为true ,数据类型不一样 === 为false
元素: 数组中的值就是元素
下标(索引): 下标从0开始
长度: length 数组的长度 从1开始
函数中 return 将数据给调用者
函数中遇到 return 直接跳出函数 后面代码不执行
函数默认 return undefined
只有声明式的函数和变量才会预解析预解析会把所有的 声明式 创建的函数(包括变量) 提升到当前作用域的最顶端
先调用 -> 后声明
在js执行的时候 浏览器会执行 预解析的操作
函数内部的特殊属性 用来保存实参列表
arguments 是一个 伪数组 => 不是数组 但是具有数组的特性(下标索引、长度、可以进行循环遍历)
可以模拟函数重载 => 同一个函数,因为传递的实参数量不同,可以执行不同的操作
构造函数相对于自定义类(class)
1.变量名一般用名词,首字母大写
2.构造函数中 不需要我们去创建对象、返回对象
3.构造函数一般 被 new 关键词调用
new 关键字 做的四件事
- 创建空对象
- 将空对象 传递给 构造函数 里面的 this
- 调用构造函数
- 返回对象
声明的时候直接调用执行(function("形参列表"){ /*代码块*/})("实参列表")

| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |