批改状态:合格
老师批语:
1.原始(5):数值、字符串、布尔、undefined、null
2.引用(3):数组、对象、函数
数组与对象的区别
- 数组与对象并无本质的区别,仅仅是语法上的不同
- 仅仅是成员声明方式和访问方式不同
- 显然对象的语义化更好
- 所以,可以将数组,看成对象的一个子集或特例
函数的本质
- 函数是JS中,最重要的数据类型
- 函数可视为一个普通的值
- 函数可以充当返回值,参数等,凡是用到值的地方
- 如果没有return,则返回 undefined
// numberconsole.log(123,typeof 123)
//stringconsole.log('php.cn',typeof 'php.cn')// string定界符:单引号/双引号,反引号 ``console.log(`Hello`)// 反引号字符串功能非常强大,不仅仅是字符串,更是一个“模板”let uname = '老马'console.log(`Hello,${uname}`)// `Hello,${uname}`:模板字面量,类似于PHP中的双引号// ${uname}: 插值,占位符
console.log(true,typeof true)console.log(false,typeof false)
// undefinedconsole.log(typeof a)
// nullconsole.log(typeof null)
const arr = ['手机', 5000, true]// 逐个:索引console.log(arr[0],arr[1],arr[2])console.log(typeof arr,Array.isArray(arr),Array.isArray(uname))
const obj = {name:'手机',price: 5000,is_stock: true}console.log(obj['name'],obj['price'],obj['is_stock'])// 点语法,要求:属性名是合法的标识符console.log(obj.name,obj.price,obj.is_stock)console.log(typeof obj)
//命名函数function fn1(){}//匿名函数const fn2 = function () {}//箭头函数:匿名函数的语法糖const fn3 = () => {}console.log(typeof fn1,typeof fn2, typeof fn3)
// forEach: 用于迭代遍历数据组或对象// forEach(callback):参数是一个函数,当函数当参数时,叫“回调”// arr.forEach(function(item,key,arr){}),只有第一个参数item是必选console.log('-----扩展--------------')
console.log('--------多维数组----------')const arr1 = [[1, '西瓜', 10],[2, '苹果', 20],[3, '黄桃', 30]]// arr1.forEach(function (item){// console.log(item)// })
arr1.forEach( item => console.log(item))// ? 2. 对象数组console.log('--------对象数组-----------')const fruits = [{ id: 1, name: '西瓜', price: 10},{ id: 2, name: '苹果', price: 20},{ id: 3, name: '黄桃', price: 30}]fruits.forEach(item => console.log(item))
length,表示成员数量/数组长度
// 不是class,类:类似,像,类数据->类似一个数组,但不是数组// 仍然是一个对象,用对象来模拟一个数组// DOM编程,浏览器中的对象console.log('--------类数组------------------')const likeArr = {0: 'admin',1: 'admin@qq.com',2: '87867535',length:3,}console.log(typeof likeArr)// ikeArr.forEach(item => console.log(item))//将类数组转化为真正的数组console.log(Array.from(likeArr))
//数组成员是函数
// const events =[// function () {// return '准备发射'// },// function () {// return '击中目标'// },// function () {// return '敌人投降'// }// ]//箭头函数简化const events = [() => '准备发射', () => '击中目标', () => '敌人投降']events.forEach( ev => console.log(ev()))// ? 对象方法//对象的方法,就是属性,只是它的值是一个匿名函数console.log('--------对象方法------------------')const user = {uname: '老马',email: 'nx99@qq.com',getUser: function () {return `${this.uname}: ${this.email}`}}//console.log(user.getUser())//改成数组const userArr = ['老马','nx99@qq.com',function () {return `${this[0]}: ${this[1]}`}]console.log(userArr[2]())
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号