2024年最全JavaScript学习笔记之函数(2),2024年最新字节跳动四面技术面

这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道

HTML

  • HTML5有哪些新特性?

  • Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?

  • 如何实现浏览器内多个标签页之间的通信?

  • ⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?

  • 简述⼀下src与href的区别?

  • cookies,sessionStorage,localStorage 的区别?

  • HTML5 的离线储存的使用和原理?

  • 怎样处理 移动端 1px 被 渲染成 2px 问题?

  • iframe 的优缺点?

  • Canvas 和 SVG 图形的区别是什么?

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 问:0.1 + 0.2 === 0.3 嘛?为什么?

  • JS 数据类型

  • 写代码:实现函数能够深度克隆基本类型

  • 事件流

  • 事件是如何实现的?

  • new 一个函数发生了什么

  • 什么是作用域?

  • JS 隐式转换,显示转换

  • 了解 this 嘛,bind,call,apply 具体指什么

  • 手写 bind、apply、call

  • setTimeout(fn, 0)多久才执行,Event Loop

  • 手写题:Promise 原理

  • 说一下原型链和原型链的继承吧

  • 数组能够调用的函数有那些?

  • PWA使用过吗?serviceWorker的使用原理是啥?

  • ES6 之前使用 prototype 实现继承

  • 箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?

  • 事件循环机制 (Event Loop)

一.函数对象

在JavaScript中,函数其实就是对象。对象字面量产生的对象连接到Object.prototype。

函数对象连接到Function.prototype(该原型对象本身连接到Object.prototype)。每个函数

对象在创建时也随带着一个prototype属性。它的值是一个拥有constructor属性且值即为该

函数所创建的对象。

因为函数为对象,所以它可以存放在变量中,对象和数组里,也可以被当做参数传递给

其他函数。

注意:函数与众不同的地方在于它们可以被调用。

二.函数字面量

四部分:

1.保留字function

2.函数名(可以忽略)

3.包围在圆括号中的一组参数

4.包围在花括号中的一组语句

三.调用

调用一个函数将暂停当前函数的执行,传递控制权和参数给新函数。除申明时定义的形式参数

,还有两个附加参数:this和arguments。this非常重要,它的值取决于调用的模式。

四种调用模式:

1.方法调用模式

// 创建myobject。它有一个value属性和一个increment方法

// increment方法接受一个可选的参数。如果参数不是数字,那么默认数字1。

var myobject = {

value: 0 ,

increment:function(inc){

this.value += typeof inc === ‘number’?inc:1;

}

};

myobject.increment();

document.writeln(myobject.value); // 1

myobject.increment(2);

document.writeln(myobject.value); // 3

方法可以用this去访问对象,所以它能从对象中取值或修改对象

2.函数调用模式

// 当函数并非一个对象属性时,那它被当做一个函数来调用

var sum = add(3,4); // sum的值为7

// 给myobject增加一个double方法

myobject.double = function(){

var that = this; // 解决方法

var helper = function(){

that.value = add(that.value,that.value);

};

helper(); //以函数的形式调用helper。

};

// 以方法的形式调用double。

myobject.double();

document.writeln(myobject.getValue()); // 6

3.构造器调用模式

// 创建一个名为quo的构造器函数。 它构造一个带有status属性的对象

var quo = function(string){

this.status = string;

};

// 给quo的所有实例提供一个名为get_status的公共方法。

quo.prototype.get_status = function(){

return this.status;

};

// 构造一个quo实例

var myquo = new quo(“confused”);

document.writeln(myquo.get_status()); //令人困惑

目的就是结合new前缀调用的函数称为构造器函数

4.Apply调用模式

// 构造一个包含两个数字的数组,并将他们相加。

var array = [3,4];

var sum = add.apply(null,array); // sum值为7

// 构造一个包含status成员的对象。

web浏览器中的javascript

window对象

  • 计时器

  • 浏览器定位和导航

  • 浏览历史

  • 浏览器和屏幕信息

  • 对话框

  • 错误处理

  • 作为window对象属性的文档元素

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值