Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:
实例演示js常用数据类型,变量与常量的声明与赋值
let
js变量声明,禁止重复赋值声明
// let:js变量声明
let userName;
// 第一次赋值初始化
userName = 'My name';
// 第二次赋值更新
userName = 'Your name';
// 输出 Your name
console.log(userName);
// 直接赋值初始化
let myName = 'My name';
// 输出 My name
console.log(myName);
const
js常量声明,声明与初始化同步完成,不能更改
// const: js常量声明
const JS = 'Javascript';
// 输出 Javascript
console.log(JS);
类型 | 引用类型 | 描述 |
---|---|---|
原始类型 | 数值,字符串,布尔,undefined,null,Symbol | 原始类型都是值传递的 |
引用类型 | 对象,数组,函数 | 引用传递 |
// 数值类型,整数或小数
let num = 1.0;
// 字符串
let str = 'str';
// 布尔 true | false
let bool = true;
// undefined 未初始化变量默认值
let untitled;
// null 空的对象
let obj = null;
// symbol 符号
let s = Symbol('s');
// console log
/**
num number
str string
bool boolean
untitled undefined
obj object
s symbol
*/
console.log('\nnum', typeof num, '\nstr', typeof str, '\nbool', typeof bool, '\nuntitled', typeof untitled, '\nobj', typeof obj, '\ns', typeof s);
// 值传递
let a = 1;
let b = a;
a = 2;
// a= 2 b= 1,a 更新不影响 b 的值
console.log('a=', a, 'b=', b);
2.2 引用类型
// 对象
let user = {
id: 1,
'custom name': 'custom value',
getId() {
return this.id;
},
getName() {
return this['custom name'];
}
}
// console log
/**
id = 1
'custom name' = custom value
getId() = 1
getName() = custom value
*/
console.log('id = ' + user.id, '\n\'custom name\' = ' + user['custom name'], '\ngetId() = ' + user.getId(), '\ngetName() = ' + user.getName());
// 数组
let arr = [1, 'name', 'description'];
// 输出 1 1 "name" "description" true
console.log(arr[0], arr[1], arr[2], Array.isArray(arr));
// 赋值给 arr2,引用传递的是一个指针,内存地址相同
let arr2 = arr;
arr2[1] = 'modify name';
// 输出 1 "modify name" "description" true
console.log(arr[0], arr[1], arr[2], arr instanceof Object);
// 函数
function hello(a, b, c) {
console.log(arguments);
}
// 输出 hello的类型:function
console.log('hello的类型:' + typeof (hello));
// 输出 hello是对象:true
console.log('hello是对象:' + (hello instanceof Object));
// 对象添加属性
hello.id = 1;
hello.email = 'a@b.cc';
// 自带属性
/**
arguments: null
caller: null
length: 3
name: "hello"
*/
console.log('name: ' + hello.name, '\nlength: ' + hello.length);
hello(1, 2, 3, 4, 5);
console.dir(hello);