批改状态:合格
老师批语:
博客已迁移至自建网站,此博客已废弃.请移步至:https://blog.ours1984.top/posts/jstype/ 欢迎大家访问
| 类型 | 举例 |
|---|---|
| number | 123.5 |
| string | “123” |
| boolean | true |
| undefined | 未初始化变量 |
| null | 是object类型 |
let x = 123;// console.log(typeof x);x = 'php.cn';// Number -> String// console.log(typeof x);

每个成员可以是原始类型,也可以是引用类型.每个成员类型可以不一样,同样可变
const arr = ['电脑', 2, 5000];// console.log(arr);console.table(arr);console.log(arr[0]);console.log(arr[1]);console.log(arr[2]);console.log(arr.length);console.log(typeof arr);console.log(Array.isArray(arr));
相当于类,对于符合js标识符命名规范的属性名,可以用.来访问.使用键名通用访问方式可访问所有成员
obj123 = {name: '电脑',num: 2,price: 5000,'my email': 'a@php.cn',total: function () {// this: 当前对象的引用,和当前对象绑定return this.name + '总价 : ' + this.num * this.price + ' 元';},};console.log(obj123.total());
obj = [{ name: '手机', num: 2, price: 5000 },{ name: '电脑', num: 5, price: 6000 },{ name: '相机', num: 4, price: 2000 },];console.log(obj);let res = obj.map(item => item.num * item.price).reduce((acc, cur) => acc + cur);console.log(res);
函数既是数据类型,也是对象
将函数当成数据类型的优点
// 1. 当成函数的参数: 回调function f1() {}function f2(f) {console.log(typeof f);}// f2是一函数, 它接受一个函数做为参数,可以将上面声明的f1传入f2(f1);// 2. 当成函数返回值: 闭包function f3() {return function () {return 'hello world';};}console.log(f3()());
const 的本质: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。下面的代码并不会报错:
// 创建常量对象const car = {type:"Fiat", model:"500", color:"white"};// 修改属性:car.color = "red";// 添加属性car.owner = "Johnson";// 但是我们不能对常量对象重新赋值:const car = {type:"Fiat", model:"500", color:"white"};car = {type:"Volvo", model:"EX60", color:"red"}; // 错误
if else if else switch case
区间判断,并非单值,一定用true才能进入分支 必须要用true做为switch入口判断条件
switch (true) {case age >= 18 && age < 35:console.log('允许单独观看');break;case age >= 35 && age < 60:console.log('允许二人或多人观看');break;case age >= 60 && age < 120:console.log('建议在孩子的陪同下观看');break;case age >= 120 || age < 8:console.log('非法年龄段');break;default:console.log('少儿不宜');}switch (language.toLowerCase()) {case 'html':console.log('超文本标记语言');break;case 'css':console.log('层叠样式表');break;case 'js':// case之间没有break,会连续输出case 'javascript':console.log('前端通用脚本语言');break;default:console.log('未定义的选项');}
while do while for
数组可以用while,for,for-of,for-in 对象用for-in
const colors = ['red', 'green', 'blue'];// es6 : for-offor (let item of colors) {console.log('phpcn: ' + item);}// 完整语法: 只看值for (let item of colors.values()) {console.log('values: ' + item);}// 所有键名:只看键for (let item of colors.keys()) {console.log('values: ' + item);}// 所有键名:看键/值for (let item of colors.entries()) {console.log('key-value: ' + item);}const obj = {a: 1,b: 2,f: function () {},};// 不能用for-of, 用 for -infor (let key in obj) {console.log(obj[key]);}// 数组也是对象, 数组能否用for-in ? 可以的for (let key in colors) {console.log(colors[key]);}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号