刚刚去复习了一下前三节,现在继续
ES6之前通过构造函数+原型实现面向对象编程
ES6之后通过类实现面向对象编程
类的本质
我们可以打印看看Star的类型
我们也可以简单的认为类就是构造函数的另外一种写法,通过验证,构造函数能实现的在类里也能实现
ES5新增方法
ES5中给我们新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括:
数组方法
遍历(迭代)方法: foreach( ) map( ) filter( ) some( ) every( )
foreach()
filter()
some()
注意:
1.filter也是查找满足条件的元素,返回的是一个数组,而且是把所有满足条件的元素返回回来
2.some也是查找满足条件的元素是否存在, 返回的是一个布尔值, 如果查找到第一个满足条件的元素就终止循环
接下来做一个案例:
写好结构以后,因为数据不是死的,而是我们动态生成的,所以这些手机的数据都是用JS写的,以对象的形式存储.放在数组中
下一步就是筛选我们要的数据:
我们筛选一个0~2000元的打印出来看看:
接下来是将我们筛选出来的数据重新渲染到页面上:
看看查询价格的效果:
当然bug还是很多的,暂且不管,接下来就是最后的环节,根据名称搜索商品.
如果查询数组中唯一的元素,用some方法更适合,因为它找到这个元素,就不再进行循环,效率更高.
关于这里的return true是这样的,some也不知道到底找没找到元素,要根据if中的true和false判断,所以要return true,some才能知道找没找到.
看看效果:
字符串方法 trim( )
这个方法在验证表单时很有用
对象方法
第三个属性比较麻烦: descriptor以对象形式{ }书写
现在写个最简单的试试看,给我们的obj添加一个color属性
修改原有的属性:
enumerable
可以看到address属性没有被遍历,因为它的enumerable默认就是false,另外两个我们用这个方法添加的属性也是默认false,但是我手动改成了true,所以可以遍历
Object.keys(obj)
configurable
如果为false, 则不允许删除这个属性,不允许再修改第三个参数里面的特性 默认为false
我们尝试修改特性:
可以发现是不允许修改的.
今天就先到这里啦