1.常量变量的声明和赋值
传统的JS没有常量,且变量可以重复声明
1.1 变量的声明
let name;
声明后并没有赋值,他的默认值为undefined
1.2 变量的赋值(初始化,第一次赋值)
name = "PHP中文网";
我们可以声明时直接赋值
let name = "php中文网";
1.3 常量
- 常量是特殊的变量:只读变量
- 常量声明后既不能删除也不能更新,所以声明的时候必须初始化赋值
const APP = "PHP中文网";
常量 ,变量,函数名。。。都叫JS标识符
1.只能用字母,数字,下划线,$,且第一个不能是数字
2.标识符是严格区分大小写的
3.命名规范:
1.蛇形let user_name = "php中文网";
2.驼峰形let userName = "php中文网";
3.大驼峰let UserName = "php中文网";
4.匈牙利式let oBody = "php中文网";
1.4 总结
实际工作中,尽可能首先const,其次才考虑let
2.JS中常用数据类型
2.1 原始类型
是构成其它类型的基础
2.1.1 数值类型(number):整数和小数
let age = 18;
2.1.2 字符串类型(string)
let email = "php@php.cn";
2.1.3 布尔类型
let ismarried = true ;
2.1.4 undeifned类型
未初始化变量的默认值
let gender;
console.log(gender);//此时会显示undeifned
console.log(gender,typeof gender);
//直接显示undeifned类型
2.1.5 null,空对象
let obj = null;
console.log(obj,typeof null); //返回的是object
2.1.5 符号,创建对象属性的唯一标识
let s = Symbol('custom symbol');
console.log(s,typeof s); //显示的就是symbol类型
使用typeof 检测数据类型
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的值
2.2 引用类型
对象(object),数组(array),函数(function)他们都是引用传递
2.2.1 对象字面量
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());
2.2.2 对象
let user = {
name,
id:1,
//此处可以省略funciton
getName(){
ruturn 'my name is' + this.name;
}
}
name = '誓言';
//当对象中有一个与共同作用域内的一个变量同名时在对象中可以直接引用
2.2.3 数组
正常情况下检查数组返回的是对象
使用Array.isArray(course)
检测是否为数组
- 数组是按照索引来访问的,从0开始
let course = [1,'js','php'];
//访问数组中的”js“
console.log(course[1]);
2.2.3 函数
函数也是对象,对象是属性的无序集合,对象可以添加属性
```
function fun(){};
fun.email = ‘php@php.cn’;
```
总结
1. 原始类型
值传递,数值,字符串,布尔,undefined,null,Symbol
2. 引用类型
引用传递,对象,数组,函数