JS数据类型、数组、this指向复习(1),web应用开发平台

Symbol:ES6新增的数据类型,用Symbole()函数来定义,代表定义的变量值的唯一性

引用数据类型(复杂数据类型)

Object,Array,Function,RegExp,String

对象类型可以添加属性 检测对象是否是对象自身的属性:hasOwnProperty

for(var key in obj) {

if(obj.hasOwnProperty(key)) {

console.log(obj[key]) }

}

二、数组:Array


数组方法

栈方法:

push():尾部添加

pop:尾部删除

unshift:头部添加

shift:头部删除

splice:在数组任意的位置添加,删除和替换

删除:splice(要删除的起始下标,删除数量)

添加:arr.splice(要插入的起始位置,0,要添加的值)

arr.splice(2,0,‘全栈1909A’)

替换:arr.splice(要替换的志起始位置,替换的数量,替换的值)

arr.splice(4,2,‘我要去阿里’)

数组内置的遍历方法:

forEach() :就是for的升级版,forEach返回值undeifned

filter():过滤,遍历满足条件的数组元素,返回新数组

map():对原数组加工处理,得到一个新数组

reduce():归并,将多个值归并成一个值

findIndex() 找下标

find() 找数组中匹配的元素

every() 全部满足才返回true,否则为false

some() 只要有一个满足就返回true,否则为false

includes() 判断数组中是否含有某个值,含有返回true,不含有返回false

flat() 扁平化 将多维数组转换成一维数组

扁平化方法:

1.toString实现

例如:

var arr=[5,5,5,5,[2,4,[2,[23,5],6],7],3,2,2,5]

arr.toString().split(‘,’).map(item=>item*1)

2.用递归来实现数组的扁平化

function flatFn(arr) {

var result=[];

if(!(arr instanceof Array)) return;

for(var key in arr) {

result=result.concat(Array.isArray(arr[key]) ? flatFn(arr[key]) : arr[key] )

}

return result;

}

3.flat() //ES2019发布方法

Array参考文档:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

2.类数组:

– 何为类数组?

也称伪数组 LikeArray,只能通过length获取数量,和通过下标指定具体的某个元素,但不能使用数组的API方法

类数组的使用场景:获取的dom集合,arguments,…

– 如何将类数组转换为数组

1.Array.from(类数组)或 […类数组]

2.Array.prototype.slice.call(类数组)

ES1.0 1997

ES2.0 1998

ES3.0 1999

ES4.0 夭折

ES5.0 2009

ES5.1 2011

ES6 2015,由此开始,每年都会发布一个新版本

ES7 2016

ES8 2017

官方ECMA Script仓库更新地址:https://github.com/tc39/proposals/blob/master/finished-proposals.md

三、字符串:String


trim() 去除字符串左右空格

不和trim,自己封装一个trim

function trim(str) {

var reg=/^\s+|\s+$/g

return str.replace(reg,’’)

}

String.prototype.quchukongge=function() {

var reg=/^\s+|\s+$/g

return this.replace(reg,’’)

}

toUpperCase() 字母转大写

toLowerCase() 字母转小写

substr() 取子串 str.substr(起始位置,取几个)

substring(起始下标,结束下标) 取子串

split() 字符串转数组 join:数组转字符串

slice(起始下标,结束下标) 取子串

replace(要查找的字符串或匹配的正则,要替换的内容) 替换

indexOf() 查找,有返回下标,没有返回-1

includes() 同数组用法 有返回true,没有返回false

四、数学对象(Math)


Math.abs() : 取绝对值

Math.random() 随机值 范围:0~~~~1

返回做任意数值范围 start-end范围

数量=y-x+1

x=10 ,y=20

11 num=y-x+1

数量=11

起始值:10

公式:Math.floor(Math.random()*数量)+起始值

封装了一个随机函数:

// start:起始下标

// end:开始下标

function randomIndex(start,end) {

var num=end-start+1

return Math.floor(Math.random()*num)+start

}

Math.foor() 向下取整

Math.ceil() 向上取整

Math.round() 四舍五入取整

Math.max() 取大值

var arr=[23,3,34,23,24,-32,34,54,234,234,235,534,235,2]

Math.max.apply(Math,arr)

Math.min.apply(Math,arr)

Math.min.call(Math,…arr)

Math.max.call(Math,…arr)

Math.min() 取小值

五、this指向


检测是否是手机端,是的话,跳转到移动页面

try {

if (location.search.indexOf(‘?pc’) !== 0 && /Android|Windows Phone|iPhone|iPod/i.test(navigator.userAgent)) {

window.location.href = ‘https://xw.qq.com?f=qqcom’;

}

} catch (e) {}

this的使用场景

*/

//1.直接调用函数 this即window

//console.log(this===window)

/*

function Fn() {

console.log(‘Fn:’,this)

//this.name=‘1909A’

}

//Fn()

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值