千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

// console.log(b);
/*
*****
变量
在计算机的内存中(栈)开辟了一个空间, 给这个空间起了一个名字,这个名字就叫做变量名
这个空间中只能存储一个内容,被存储的内容叫做变量值
x=10;
y=20;
*/
// x=10;
// console.log(x);//会将x空间中10获取并且打印
// x=20;//给x空间重新存储20值,这时候会覆盖原有的值
// console.log(x);
// x=1;
// y=2;
// console.log(x+y);//将x空间中的值和y空间中的值获取相加并且打印
/*
window 这是网页中最根本元素,所有的内容都是window下的内容 ,通常可以省略window
a=1 这种写法属于早期JavaScript不太成熟时,没有变量这个概念,会将所有描述赋值放在window对象中
window.a=1;
只有当运行到赋值时才会给window对象上创建属性a,之前是不会创建任何变量空间的,所以在这句话之前打印
a,就会报错 a is not defined a没有定义
变量可以重复定义
var b=2; 延续了早期放入在window对象下的特征,使用var定义的变量有一个特征叫做预解析
预解析
在script标签刚开始时,还没有运行到对应定义变量的位置,就会在内存栈中开辟一个存储空间,并且起名
叫做变量名,但是并没有给这个空间中存储任何值,这时候如果获取这个空间中存储的值时,因为没有任何值
所以会返回一个undefined(未定义)
变量可以重复定义
let c=3是ES6中推出的新的定义变量
当没有执行到这句话时,它不会存在,并且在执行这句话之前打印会报错Cannot access 'c' before initialization
不能c初始化之前调用它,不牵扯预解析的概念,没有使用let定义之前是不能调用的
不能重复定义
用let定义的变量并不是放在window下的,所以不能使用window.c获取
let可以作为块语句的作用范围内
*/
// console.log(c);
// console.log(a);
// a=1;
// var b=2;
// let c=3;
// a=2;
// var b=3;//重复定义覆盖了上一个同名变量
// let c=3;//不能重复定义,会报错
// alert()
// window.alert()
// console.log();
// window.console.log();
// console.log(window.b);
// console.log(window.c);
// {
// // 如果使用let在块语句中定义的变量,使用的范围仅属于这个块语句内,块语句外不存在
// // 把属于哪个范围内有效叫做作用域
// let d=1;
// console.log(d);
// }
// console.log(d);
// if(){
// let a=1;
// }
/*
变量名
1、不能起无意义的变量名
2、变量名命名时只能包含 数字,字母,下划线,$。但是第一个符号不能是数字
3、不能使用关键字定义变量 if for while var这些是js中命令关键词,不能重复使用
4、不能使用保留词 private public class
5、变量名尽量使用驼峰式命名 除第一个单词外每个单词的首字母大写,一般临时变量使用_起头 _temp _price
6、禁止使用window对象下所有属性和方法名相同的变量(var),如果使用let不需要考虑
7、使用连等时,var定义只有第一个变量,后面都不会做预解析
8、变量定义时如果同时定义多个变量,可以使用逗号分割,可以将有初始值的变量定义在一起,没有初始值的定义在一起
var $a=1;
var $=3;
var _a=1;
var a1=3;
var 1a=3;//错误的
*/
// var totalPrice=2000;
// console.log(window.status)
var status=3;
console.log(status+1);
// var alert=3;
// console.log(a1);
// console.log(b1);
// 只有第一个是var定义的变量,所以第一个会做预解析,而后面的b1和c1都不是var定义,而是第一种直接赋值给window的属性
// b1和c1都不会做预解析
// var a1=b1=c1=3;
// console.log(a1,b1,c1);
// var a1,b1,c1;
// a1=b1=c1=3;
// var a1=3,
// b1=3,
// c1=3;
</script>