js常见题

news/2025/3/14 2:06:04/

目录

什么是js?js的特点是什么?

js由那三部分组成?

为什么最好把 JS 的 script 标签恰好放在 body 结束标签之前?

什么是语句?什么是表达式?怎么区分?

说明全局变量和局部变量的作用范围和生命周期?

js的数据类型有几类?一共有几种?判断数据类型的方法是什么?

引用数据类型和基础数据类型的区别

javascript的typeof返回哪些数据类型?

null和undefined的区别是什么?

JavaScript 中 undefined 和 not defined 的区别

JavaScript输出数据的方法?

在 js 中哪些值会被转换为 false

介绍一下js的节流与防抖?

什么是事件冒泡?如何阻止事件冒泡和浏览器默认事件?

什么是事件代理?什么是事件委托?

什么是json?json可以存在哪几种数据类型?在什么时候用?

闭包是什么?有什么特性?对页面有什么影响?

this是指向的哪个全局变量,改变this指向的方法有几种?

call 和 apply的区别?


什么是js?js的特点是什么?

js: 是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的高级语言。

特点:简单性;安全性;动态性;跨平台性;

简单性:它的变量类型是采用弱类型,并未使用严格的数据类型。

安全性:js 不允许直接访问本地的硬盘,而且不能将数据存放到服务器上,不允许对网络文档进 行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。 

动态性:js 可以直接对用户的输入做出响应而无需经过 Web 服务程序。它对用户的响应是采用以事件驱动的方式进行的。 

跨平台性:js 仅依赖于浏览器本身,与操作系统无关,只要是能运行浏览器的计算机,并支持js 的浏览器就可以正确执行。 

js由那三部分组成?

Java Script的三个主要组成部分是:

ECMAScript(核心)ECMAScript是一套标准,定义了一种语言的标准,规定了基本语法、数据类型、关键字、具体API的设计规范等,解析引擎设计的参考标准,但与具体实现无关,是JavaScript的核心。

DOM(文档对象模型):DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作。

BOM(浏览器对象模型):BOM是一套操作浏览器功能的API,通过BOM可以操作浏览器窗口.

JavaScript是一种专为与网页交互而设计的脚本语言,由以下三个不同的部分组成:

1、核心(ECMAScript):由ECMA-262定义,提供核心语言功能;

2、文档对象模型(DOM):提供访问和操作网页内容的方法和接口;

3、浏览器对象模型(BOM):提供与浏览器交互的方法和接口。

为什么最好把 JS 的 script 标签恰好放在 body 结束标签之前?

脚本在下载和执行期间会阻止 HTML 解析。把<script>标签放在底部,保证 HTML 首先完成解析,将页面尽早呈现给用户。

什么是语句?什么是表达式?怎么区分?

  • 表达式:产生一个值
  • 语句:执行一个操作

一个表达式可以产生一个值,有可能是运算、函数的调用、有可能是字面量。表达式可以放在任何需要值的地方。

语句可以理解为一个行为,循环语句和判断语句就是典型的语句。一个程序由很多的语句组成,一般情况下一个分号;分割一个一个的语句。

表达式不会对程序执行结果产生影响,而语句是程序的基本单位,对程序结果产生影响。

说明全局变量和局部变量的作用范围和生命周期?

全局变量:范围是整个HTML页面,生命周期整个程序

局部变量:范围是这个变量的代码块,生命周期是函数创建时执行,结束时销毁。

js的数据类型有几类?一共有几种?判断数据类型的方法是什么?

数据类型分为 基本数据类型 和 引用数据类型

基本数据类型:

undefined(未定义)

null(空值)  

string(字符串

number(数字)

boolean(布尔值)

引用数据类型:

object  对象

array  数组

function  函数

1.使用  type of  判断数据类型

这个方法很常见,一般用来判断基本数据类型,如:string,number,boolean,symbol,bigint(es10新增一种基本数据类型bigint),undefined等。

typeof 目前能返回string,number,boolean,symbol,bigint,unfined,object,function这八种判断类型

     2.Object.prototype.toString

       toString是Object原型对象上的一个方法,该方法默认返回其调用者的具体类型,更严格的讲,是 toString运行时this指向的对象类型, 返回的类型格式为[object,xxx],xxx是具体的数据类型,其中包括:String,Number,Boolean,Undefined,Null,Function,Date,Array,RegExp,Error,HTMLDocument,… 基本上所有对象的类型都可以通过这个方法获取到。

引用数据类型和基础数据类型的区别

一、存储上的区别

1.基本数据类型是存放在栈中的简单数据段。

2.引用数据类型是存放在堆内存中的对象,在栈内存中存放的是堆内存中具体内容的引用地址,通过这个地址可以快速查找到对象。

二、比较上的区别

1.基本数据类型的比较是值的比较为(true)

2.引用类型的比较是引用的比较为(false)

因为引用类型比较的是地址,也就是比较两个对象保存在栈区的指向堆内存的地址是否相同,虽然看起来一样,但是他们指向堆内存的地址是不一样的,所以两个对象不相等。

三、赋值上的区别

1.基本数据类型的赋值是简单赋值,如果一个变量向另一个变量赋值基本类型的值,会在变量对象上创建一个新值,然后把这个值复制到为新变量分配的位置上。

2.引用类型的赋值是对象引用

javascript的typeof返回哪些数据类型?

typeof 共返回6种数据格式:

1、object

 2、undefined

 3、string

 4、number

 5、boolean

 6、function

  特别注意Array和Null返回的都是Object

null和undefined的区别是什么?

null  表示为空,没有值

undefined  表示为未定义,应该有值,但是没有赋值

JavaScript 中 undefined 和 not defined 的区别

undefined是javascript语言中定义的五个原始类中的一个,换句话说,undefined并不是程序报错,而是程序允许的一个值。

not defined是javascript在运行我们的javascript代码时,遇到没有定义就用来运算的变量时爆出来的错误。

JavaScript输出数据的方法?

   使用 alert()弹出警告框

   使用 docunment.write()将内容写到HTML文档中

   使用 docunment.innerHTML 写到HTML 元素中

   使用 console.log()写到浏览器的控制台

在 js 中哪些值会被转换为 false

  1. 0 (两种 -0 和 +0)
  2. 空字符串(’ ’ 和 " "两种形式的空字符串都会认为是false)
  3. null
  4. undefined
  5. NAN

介绍一下js的节流与防抖?

节流:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。

防抖:就是指触发事件后在规定时间内函数只能执行一次,如果在规定时间内又触发了事件,则会重新计算函数的执行时间。

什么是事件冒泡?如何阻止事件冒泡和浏览器默认事件?

事件冒泡就是指父元素和子元素有相同的事件,当触发子元素事件时,会向上冒泡,同时也会触发父元素事件。

  阻止事件冒泡:e.stopPropagation(); 

  阻止浏览器默认事件:e.preventDefault();

什么是事件代理?什么是事件委托?

事件代理:把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。

事件委托就是利用事件冒泡,只指定一个事件处理程序,管理当前绑定下的所有元素的事件。

什么是json?json可以存在哪几种数据类型?在什么时候用?

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

JSON 是轻量级的文本数据交换格式

JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。

JSON 值可以是:

          数字(整数或浮点数)

         字符串(在双引号中)

         逻辑值(true 或 false)

         数组(在中括号中)

         对象(在大括号中)

         Null

JSON格式通常用于通过网络连接序列化和传输结构化数据。 它主要用于在服务器和Web应用程序之间传输数据,是XML的替代方法。 

闭包是什么?有什么特性?对页面有什么影响?

        闭包就是函数内部和函数外部连接起来的桥梁。

        特性:封闭性:外界无法访问闭包内部的数据,除非闭包主动向外界提供访问端口

        持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然存在

        影响:使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等

闭包的实际应用:主要是用来封装变量,收敛权限。

this是指向的哪个全局变量,改变this指向的方法有几种?

以函数的形式调用时this永远都是window

以方法的形式调用时,this就是调用方法的对象

1.call()

2.apply()

3.bind()

call 和 apply的区别?

call():将函数作为对象的方法来调用,将指定参数传递给该方法

apply():将函数作为对象的方法来调用,将参数以数组形式传递给该方法

bind 也是改变 this 指向,不过不是在调用时生效,而是返回一个新函数。


http://www.ppmy.cn/news/1049009.html

相关文章

Java虚拟机(JVM):垃圾收集算法

目录 一、分代收集理论 二、标记-清除算法 三、标记-复制算法 四、标记-整理算法 一、分代收集理论 分代收集理论建立在两个分代假说之上&#xff1a; 1、弱分代假说&#xff1a;绝大多数对象都是朝生夕灭的。 2、强分代假说&#xff1a;熬过越多次垃圾收集过程的对象就…

网站巡查与SEO:爱校对如何确保内容的最佳质量?

随着互联网的飞速发展&#xff0c;企业和个人正在寻找优化他们网站内容的最佳方式。在这个数字化时代&#xff0c;网站巡查和SEO已成为维持网站高度相关性和可见性的关键。此时&#xff0c;工具如“爱校对”不仅帮助检查文本的质量&#xff0c;还确保内容对搜索引擎优化&#x…

【数据结构】回溯算法公式化解题 leetcode经典题目带刷:全排列、组合、子集

目录 回溯算法一、什么是回溯算法1、基本思想&#xff1a;2、一般步骤&#xff1a; 二、题目带练1、全排列2、组合3、子集 三、公式总结 回溯算法 一、什么是回溯算法 回溯算法&#xff08;Backtracking Algorithm&#xff09;是一种解决组合问题、排列问题、选择问题等一类问…

leetcode 6450. k-avoiding 数组的最小总和

给你两个整数 n 和 k 。 对于一个由 不同 正整数组成的数组&#xff0c;如果其中不存在任何求和等于 k 的不同元素对&#xff0c;则称其为 k-avoiding 数组。 返回长度为 n 的 k-avoiding 数组的可能的最小总和。 示例 1&#xff1a; 输入&#xff1a;n 5, k 4 输出&#…

C# Windows登录界面进行截图,控制鼠标键盘等操作实现(三)

在Windows登录界面进行截图&#xff0c;目前尝试到的以下的截图方法可以截取到图&#xff0c;其它的方式要么卡住&#xff0c;要么截出来是黑屏的&#xff0c;直接上代码&#xff1a; /// <summary>使用Graphics方式捕获桌面截图(效率低于DesktopCapture&#xff0c;主要…

高效进行按数量归类,自动新建文件夹,高效管理文件!

大家好&#xff01;在进行文件管理时&#xff0c;我们经常需要将大量的文件按数量进行归类&#xff0c;以便更好地组织和管理。为了让您能够高效管理文件&#xff0c;我们特别推出了一款智能工具——文件自动归类软件&#xff01;让您能够轻松将文件按数量自动新建文件夹&#…

剪枝基础与实战(1): 概述

本文介绍基于L1正则化的剪枝原理,并以VGG网络进行实战说明。将从零详细介绍模型训练、稀疏化、剪枝、finetune的全过程,提供详细的源码及说明,有助于对剪枝的熟练掌握,后续也会对yolov8进行剪枝的介绍。 论文: Learning Efficient Convolutional Networks through Network …

无则插入有则更新(PostgreSQL,MySQL,Oracle、SqlServer)

无则插入有则更新 PostgreSQL 无则插入有则更新 conflict(带有唯一性约束的字段)&#xff0c;根据此字段判断是更新还是插入 INSERT INTO student(id,name,sex) VALUES(1, 小明, 男) ON conflict (id) DO UPDATE SET id 1,name 小明,sex 男;无则插入有则不做操作 INSERT I…