Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:
传统的JS没有常量,且变量可以重复声明
let name;
声明后并没有赋值,他的默认值为undefined
name = "PHP中文网";
我们可以声明时直接赋值
let name = "php中文网";
const APP = "PHP中文网";
常量 ,变量,函数名。。。都叫JS标识符
1.只能用字母,数字,下划线,$,且第一个不能是数字
2.标识符是严格区分大小写的
3.命名规范:
1.蛇形let user_name = "php中文网";
2.驼峰形let userName = "php中文网";
3.大驼峰let UserName = "php中文网";
4.匈牙利式let oBody = "php中文网";
实际工作中,尽可能首先const,其次才考虑let
是构成其它类型的基础
let age = 18;
let email = "php@php.cn";
let ismarried = true ;
未初始化变量的默认值
let gender;
console.log(gender);//此时会显示undeifned
console.log(gender,typeof gender);
//直接显示undeifned类型
let obj = null;
console.log(obj,typeof null); //返回的是object
let s = Symbol('custom symbol');
console.log(s,typeof s); //显示的就是symbol类型
console.log(age,typeof age);
console.log('邮箱' + email);
let a = 100 ;
//将变量的值,传递到了b中
let b = a;
a = 200;
console.log(a);
console.log(b);
//a的更新不会影响到B的值
对象(object),数组(array),函数(function)他们都是引用传递
let user = {
id:1,
name:'誓言',
'my email':'php@php.cn',
getName: funciton(){
return '我的ID' + this.name;
}
}
//访问对象属性
console.log(user.name,user.id);
//访问带空格属性
console.log(user['my email']);
//访问对象函数
console.log(user.getName());
let user = {
name,
id:1,
//此处可以省略funciton
getName(){
ruturn 'my name is' + this.name;
}
}
name = '誓言';
//当对象中有一个与共同作用域内的一个变量同名时在对象中可以直接引用
正常情况下检查数组返回的是对象
使用Array.isArray(course)
检测是否为数组
let course = [1,'js','php'];
//访问数组中的”js“
console.log(course[1]);
函数也是对象,对象是属性的无序集合,对象可以添加属性
```
function fun(){};
fun.email = ‘php@php.cn’;
```
值传递,数值,字符串,布尔,undefined,null,Symbol
引用传递,对象,数组,函数