javaScript基础

【进阶】【JS逆向爬虫】【1.JavaScript 基础语法】初始JavaScript 初始JavaScript 1.JavaScript 概述 2.JavaScript 的作用 3.浏览器执行 JS 简介 4.JS 的组成 ECMAScript DOM ——文档对象模型 BOM ——浏览器对象模型 5.JavaScript 运行过程 阅读详情

在学习完原生js之后结合面试当中的问题做了如下总结。
内容上没有做到精细,后续会逐渐完善,有什么不足和需要补充的欢迎大家给出宝贵意见,虚心接受,欢迎前来技术探讨。

document.write()和innerHTML的区别?

document.write是直接将内容写入页面的内容流,会导致页面全部重绘
innerHTML将内容写入某个DOM节点,不会导致页面全部重绘

JS中的数据类型有哪些?

基础数据类型 , Undefined、Null、Boolean、Number和String
引用数据类型 , Object

JS中基本类型和引用类型的区别?

基本数据类型是按值访问的.
引用数据类型在栈内存中保存的实际上是对象在堆内存中的引用地址

JS中堆栈和队列的区别?

堆栈和队列都是动态的集合.
堆栈遵循先进后出的策略. 比如: 数组的push() 和 pop() 方法,实现类似栈的行为.
队列遵循先进先出的策略. 比如: 数组的shift() 和 unshift() 方法,实现类似队列的行为.

检测变量的数据类型的方法有哪些?

1.typeof , 可用于检测基本类型,但碰到引用类型均返回为object。(例 : typeof arr === “类型”)
2.instanceof , 可用于引用类型的检测,但对于基本类型是不生效的
3.constructor , 可用于检测js的基本类型和引用类型, 但当对象的原型更改之后,constructor便失效了
4.Object.prototype.toString.call() , 可用于检测js所有的数据类型.

JS中==和===的区别是什么?

首先 == 用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换, 只比较操作数的值
其次 === 用来检测两个操作数是否严格相等, 会同时比较操作数的值, 操作数的类型, 操作数的引用地址.

js开启严格模式有哪些影响?

变量: var、delete、变量关键字
对象: 只读属性、 对象字面量属性重复申明
函数:参数重名、arguments对象、申明
其他:this、eval、关键字…

** break和continue的区别是什么**

break 和continue的区别是 , break是直接结束循环, 继续执行循环后的其他语句, 而continue呢,它是跳过本次循环,继续执行下一次循环.

谈一谈你理解的变量提升, 函数提升?

所谓的变量提升和函数提升, 是将所有变量声明和函数声明提升到当前作用域的顶端
对于变量提升, 只是提升变量声明,并不会将赋值初始化提升
如果声明了同名的变量和函数,函数提升的优先级大于变量

函数上下文(this) 的几种情况.

1.普通函数执行, 内部this默认是window, 严格模式下是undefined
2.对象.方法()执行, 内部this是对象本身.
3.构造函数用new执行, 内部this指向新创建的实例对象
4.箭头函数,箭头函数没有自己的this,箭头函数中的this是箭头函数创建时当前上下文中的this。如果当前上下文没有this就会继续向上寻找 .
5.事件处理函数:函数中的this是当前元素本身
6.函数内部this被call,apply,bind强制修改,以修改后指向为准.
总结: 箭头函数是创建时就已经确定了this,又由于箭头函数本身没有this,所以使用call等方法也无法改变其this指向,第一个参数将被忽略. 普通函数则是执行时才明确this。

说一说call,apply,bind的区别?

相同点: 在JS中,这三者都是用来改变函数内this的指向的, 它们的第一个参数都是this要指向的对象.
不同点: 改变函数内this的指向时, 如果还需要传其他参数: 对于call, 多个参数只能逗号分隔一个一个传入; 对于apply, 多个参数以一个数组的形式传入; 对于bind可以像call那样传参, 由于bind的返回值仍然是一个函数,所以我们还可以在调用的时候再进行传参.

call(对象,参数1,参数2,.....)//返回对象
apply(对象,数组或argument)//返回对象
bind(对象,参数1,参数2)//返回函数

JavaScript中数组的常用方法,至少10个?

会改变数组自身的方法: push, pop, shift, unshift,splice,sort, reverse,
不会改变数组自身的方法: concat, join, slice, toString
ES5数组方法: forEach,map, every, some, filter, reduce, indexOf, lastIndexOf
ES6 数组扩展: from, of, find, findIndex

ES6的新特性有哪些?

1.变量声明: 新增了let和const;
2.模板字符串
3.数据结构: set, map, 对象键值重名简写 , 对象合并 Object.assign() , 解构, 展开运算符… ,
4.函数: 箭头函数, 函数的参数默认值
5.类的支持: 引入了class关键字。
6.模块import,export
7.Promise

如何理解箭头函数, 它有哪些特点?

1.不需要function关键字来创建函数。
2.省略return关键字。在箭头函数中 如果函数体中只有一句代码并且代码的执行结果就是函数的返回值 函数体大括号可以省略
3.改变this指向。箭头函数没有自己的this关键字,箭头函数中使用this,this关键字将指向箭头函数创建时上下文中的this。

ES7的新特性有哪些

数组新增 includes 方法
**求幂运算符

如何理解js中的闭包?

闭包实际上就是一个能够访问另一个函数作用域中变量的函数.
闭包的应用:模拟私有变量的实现, 防抖节流函数, 偏函数与柯里化, bind等等函数

JavaScript中实现异步编程的方式有哪些?

1.回调函数
2.事件监听
3.发布/订阅
4.Promise对象

** 什么是Promise?我们用Promise来解决什么问题**

Promise 是异步编程的一种解决方案. promise有三种状态: pending(等待态),reslove(成功态),rejected(失败态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行
Promise 用来解决传统异步回调出现的回调地狱问题.

** ES8的新特性有哪些,请列举?**

Object.values/Object.entries
String padding(字符串填充)
Object.getOwnPropertyDescriptors
函数参数列表和调用中的尾逗号(Trailing commas)
async/await

描述一下JavaScript防抖函数的原理?

防抖动是将短时间内的多次执行变为最后一次执行

function fangdou(fn,time){
    var timer = null;
    return function(e){
        if(timer){
            clearTimeout(timer)
        }
        console.log("防抖")
        timer = setTimeout(()=>{
            fn(e)
        },time)
    }
}
export default fangdou

描述一下JavaScript节流函数的原理?

节流是将短时间内的多次执行变成每隔一段时间执行一次

function jieliu(fn,time){
var timer = null;
return function(){
    if(!timer){
        timer = setTimeout(()=>{
            clearTimeout(timer);
            timer = null;
            fn();
        },time)
    }
}
}

export default jieliu

JavaScript中实现继承有哪些方案?

原型链继承
构造函数继承
组合继承
寄生式继承
寄生组合式继承

什么是原型链,原型链的作用是什么?

每一个对象,都有一个原型对象与之关联,这个原型对象它也是一个普通对象,这个普通对象也有自己的原型对象,这样层层递进,就形成了一个链条,这个链条就是原型链.
通过原型链可以实现JS的继承,把父类的原型对象赋值给子类的原型,这样子类实例就可以访问父类原型上的方法了

Object原型上有哪些方法?

1.constructor
2.hasOwnProperty()
3.isPrototypeOf()
5.valueOf()
6.toString()
7.toLocaleString()

浏览器端 event loop 工作流程(原理)是什么?

1.js中有同步任务、异步任务两种
2.同步任务在JS引擎线程执行,形成执行栈
3.执行栈中的同步任务在执行过程中遇到异步任务,异步任务被放入任务队列, 等待执行
4.执行栈中的任务运行完成后(JS引擎空闲),从任务队列中读取异步任务,加入到执行栈,并执行
5.主线程不断重复上面的第三步

请描述一下JavaScript中的异步任务?

异步任务分为宏任务,微任务.
宏任务: script(整体代码), setTimeout, setInterval, setImmediate, I/O, UI rendering
微任务: process.nextTick(Nodejs), Promises, Object.observe, MutationObserver;
当前执行栈执行完毕时会立刻先处理所有微任务队列中的事件,然后再去宏任务队列中取出一个事件。同一次事件循环中,微任务永远在宏任务之前执行.

原生js中获取元素节点的方法有哪些?

通过元素类型的方法来获取
getElementById()
getElementsByTagName()
getElementsByClassName()
querySelector()
querySelectorAll()
getElementsByName()

根据节点关系来获取
parentElement 
children
firstElementChild
lastElementChild
nextElementSibling
previousElementSibling

根据特殊属性来获取
document.title
document.body
document.images
document.forms

JavaScript入门一(JS基础知识) 文章目录一、JavaScript是什么二、网页组成2.读入数据总结 一、JavaScript是什么        JavaScript(简称“JS”)百度解释如下: 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。   & 阅读详情

相关推荐

STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能

单片机实现LWIP的调试

qq_40600203的博客 3070

JS进阶第三篇:开发中对数组及对象的判断方法

可以获取到变量的不同类型。这个方法可以用来检测一个对象是否含有特定的自身属性,即是用来判断一个属性是定义在对象本身而不是继承自原型链的,上面是最简单的一个创建构造函数实例的例子,根据我们原型链学到的知识,在这个例子中,对于实例 p 而言,JavaScript的in操作符可以用来判断一个属性是否属于一个对象,也可以用来变量一个对象的属性。Reflect是在ES2015新增的一个内置对象,提供了与Javascript对象交互的方法。这么做虽然可以但是不正规,最特殊的情况就是我们有age字段,而它的值是。

qq_49900295的博客 1351

python 解析bag文件(不用安装ros系统)

在网上找了很多教程都是安装ros系统之后再通过ros自带的包来解析bag文件,但我并不想安装ros系统,之前我也是通过安装ros系统在来解析bag文件,我觉得不是很方便,主要有两点原因,(1)安装ros需要root用户权限(2)ros系统只支持Python2的接口,一般我都是Python3的conda环境,这样每次调用rosbag时都需要先把当前的conda环境注释掉,不然会报错,然后使用完毕在回到conda环境 ros本身是提供了C++和Python的接口,因为我目前的诉求就只是解析bag文件,我想肯定有

sabrinalx的博客 1万+

面向对象常用方法——isPrototypeOf、hasOwnProperty、getOwnPropertyDescriptor、defineProperty、propertylsEnumerable

1、isPrototypeOf() 作用:用于指示对象是否存在于另一个对象的原型链中,存在返回true,否则返回false 语法:prototypeObject.isPrototypeOf(object) 用例: function Person(name,age){ this.name=name; this.age=age; } var lisi=new Person("张三 ",20); console.log(Person.prototype.isProto

weixin_52120405的博客 583

京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略

本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。

weixin_29246195的博客 1740

TAS5805MPWPR实战:数字音频功放从选型到量产全流程指南

数字音频功放将I2S数字信号直接转为PWM驱动扬声器,省去传统DAC与模拟运放链路,在高保真、低BOM与紧凑PCB之间找到平衡。其核心在于内置可编程DSP,支持多段PEQ、DRC等数字处理,通过I2C配置即可完成调音,而不占用主控算力。这类方案广泛应用于蓝牙音箱、Soundbar、智能音频模组等产品,但实际落地时常遇到I2C通信不稳定、EQ未生效、底噪超标、DC检测误触发等工程问题。从电源布局、LC滤波参数到PurePath Console工具链的使用,再到量产固件加载与故障排查,都需要系统化方法论支撑。本

weixin_29164843的博客 220

JavaScript中isPrototypeOf函数详解

有时看一些框架源码的时候,会碰到 isPrototypeOf() 这个函数,那么这个函数有什么作用呢? isPrototypeOf() isPrototypeOf() 是 Object函数(类)的下的一个方法,用于判断当前对象是否为另外一个对象的原型,如果是就返回 true,否则就返回 false。 这个函数理解的关键是在原型链上,这个据说是JavaScript的三座大山之一。 这里不详述其中的原理,简单的来讲就是3点: 1. 函数对象,都会天生自带一个prototype原型属性。 2. 每一个对象也天生自

晴空闲云 4638

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装。

weixin_40132006的博客 2241

isPrototypeOf和instanceOf的区别

instanceOf 用于检查对象是否是某个构造函数(类型)的实例<script> var arr = [1,2,3]; console.log(arr instanceof Array); //true console.log(Array instanceof Object); //true console.log(arr instan...

u010998803的博客 991

黑猫带你学eMMC协议第12篇:生产状态感知(PSA)

1 概述 1.1 什么是PSA Production State Awareness (PSA) 生产状态感知 e•MMC设备可以利用其是否在生产环境中的信息,从而在现场运作时进行不同的操作。 例如,在设备低温焊接(soldering)前,将数据写入emmc,可能导致数据出错,而正在焊接期间写入数据,出错的概率可能会更大。在低温焊接之前,emmc设备可以使用一种特定的内部操作去加载内容,这样就能减少数据出错的概率,而在低温焊接后进行常规的操作就行了。 1.2 psa如何进行工作? PSA存在于emmc5.0

黑猫奥利奥的博客 4261

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1382

javascript isPrototypeOf()与getPrototypeOf()方法

关于isPrototypeOf()方法,在此我把前面讲的原型模式图中的代码直接拿过来用。我们先来看看isPrototypeOf()方法的语法:语法isPrototypeOf()函数用于指示对象是否存在于另一个对象的原型链中。如果存在,返回true,否则返回false。 function.prototype.isPrototypeOf(object)参数列表 参数 描述 functi

苦艾文艺 1685

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JavaScript基础入门,JS基础,JS入门

JavaScript简介,使用JavaScript,行内代码,内部代码,外部代码,理解Window对象,Window对象的方法,Window对象的属性,JavaScript语法,标识符,关键字,注释,代码规范,变量,定义变量,变量声明的提升,数据类型,原始类型,引用类型,监测数据类型,数据类型转换,算数运算符,辅助运算符

非歪的博客 602

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【JavaScript】01-初始JS基础

渲染引擎:用来解析HTML和CSS,俗称内核,如chrome中的blink,老版本的webkit。是一种运行在客户端(自己的电脑,非远程服务器)的脚本语言(script是脚本的意思)。JS引擎:俗称JS解释器,读取网页中的JS代码,处理后运行,比如chrome中的V8。双标签,添加src链接到新创建的my.js内,最后在html页面运行。注意单双引号的使用:HTML中推荐用双引号,JS中推荐用单引号。举例,实际操作可以忽略,只是展示行内的形式。行内式的JS不建议使用,特殊时使用。

2301_76662826的博客 848

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Node.js和Javascript的异同

JavaScript的组成: ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象) DOM(一些操作页面元素的方法) BOM(一些操作浏览器的方法) Nodejs的组成: ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象) os(操作系统) file(文件系统) net(网络系统) ...

【小石头的茅坑】 71万+

Js基础_初识JavaScript

文章目录一、JavaScript是什么?二、Js作用三、浏览器执行Js 一、JavaScript是什么? 是一种运行在客户端的脚本语言(不需要编译,运行过程中由解释器逐行来进行解释执行) Node.js可以进行服务端编程 二、Js作用 1.表单动态校验(密码强度检测) 2.网页特效 3.服务端开发(Node.js) 4.左面程序(Electron) 5.App/小程序(Cordova) 6.控制硬件-物联网(Ruff) 7.游戏开发(cocos2d-js) 三、浏览器执行Js 浏览器分为两个部分 渲染引擎

认真,努力,记录学习 7384

黑马JS教程笔记(JavaScript教程)——JS基础

<head><title>JavaScript练习</title></head><body><script></script></body>

Dontla的博客 2656

【js】javaScript基础

js基本语法: (1)js语言在网页中出现的位置: js可以直接嵌入到网页中去写,也可以进行页面分离面,面。若进行页面分离后,引入外部文件用&amp;amp;lt;script src=&amp;quot;&amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt; 如果写在同一页面中,可以写在head标签里也可以写在body里面 &amp;amp;lt;script type=&amp;q

weixin_43689100的博客 563

有 JavaScript 基础,怎么学习 Node.js

转自:知乎(侵删) 不知道题主所说的 JavaScript 基础具体有多少。JavaScript 本身是一门很完备(虽然坑也不少)的编程语言,有不少人随便用用 jQuery 就说自己有 JavaScript 基础,而对 JavaScript 的闭包,内存管理,原型链等特征的了解很少。 如果你真的对 JavaScript 这门语言很了解的话,那么可以给你省一些时间——你不用再去学习 Ja

hellochenlu的博客 701

前端——JavaScript(JS)代码基础

前端中的JavaScript代码基础

2402_88087197的博客 2888

node.js和javascript的关系

node.js是一个基于 Chrome V8引擎的 JavaScript 运行时环境 一、类比JavaScript和java JavaScript java V8 JVM node.js JRE JavaScript和java都是一门编程语言,至于两者的关系,是雷锋和雷峰塔的关系 V8是google开源的JavaScript引擎,用于执行JavaScript,...

【小石头的茅坑】 71万+

Next.js, Node.js, JavaScript, TypeScript 的关系

【代码】Next.js, Node.js, JavaScript, TypeScript 的关系。

坚持输出,记录成长。 1737

node.js和JavaScript的关系

1. 什么是node.js node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时的环境。 2. 什么是JavaScript 2.1比较JavaScript 和 Java 两者之间没有关系 V8是google开源的JavaScript引擎,用于执行JavaScript;类似JVM执行java字节码。在node.js 诞生之前,V8是内置于Chromeium中的,现在也...

weixin_41160054的博客 5535

JavaScript基础——JS简单案例

JS基础案例

m0_68794863的博客 5966

JavaScript(JS)的简单了解

JavaScript(JS)的简单了解

m0_68989458的博客 3058
上一篇: Vue组件通信
下一篇: 关于深拷贝与浅拷贝的区别
JSON_JSJ
博客等级 码龄5年 4粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_JSJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值