每天10个js面试题(一)

1.js基本数据类型?

  • JavaScript 共有八种数据类型,分别是
  • Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。
  • 其中 Symbol 和 BigInt 是 ES6 中新增的数据类型

2.let、const、var的区别?

  • let和const有暂时性死区,var没有
  • let和const声明的变量具有块级作用域,var没有
  • let和const不可以重复声明,var可以
  • const赋值后不可以重新赋值,let和var可以重新赋值
  • const必须有初始值、let和var不需要

3.数据类型检测的方式有哪些?

  • typeof   除了null 的基本数据类型都能正确判断,复杂数据类型判断为object 
  • instanceof   可以正确判断对象的类型,原理是判断在其原型链中能否找到该类型的原型。
  • constructor   原理是通过构造函数来进行判断
  • Object.prototype.toString.call   可以判断所有数据类型

4.null 和 undefined 区别?

  • undefined 代表的含义是未定义
  • null 代表的含义是空对象
  • 一般变量声明了但还没有定义的时候会返回undefined
  • null 主要用于赋值给一些可能会返回对象的变量,作为初始化。

5.判断一个对象为空对象的方式?

  • JSON.stringfy({})==='{}' (转化为字符串对比)
  • object.keys({}).length===0(获取对象的key数组的长度为0)
  • object.values({}).length===0 (获取对象的value数组的长度为0)
  • object.hasOwnProptyName({}).length===0(获取自身属性数组长度为0)
  • 使用for in循环遍历,在遍历里返回false,外部返回true

6.箭头函数和普通函数的区别?

  • 箭头函数没有自己的this
  • 箭头函数不能使用关键字new,会报错
  • 箭头函数不能作为构造函数
  • 箭头函数没有prototype(原型)
  • 箭头函数没有arguments(参数列表)
  • 箭头函数不能作为生成器函数

7.this指向?

  • this指向函数的直接调用者(而非间接调用者,也就是.前面的)
  • 如果有new关键字,this指向new出来的那个对象
  • 在事件中,this指向目标元素,特殊的是IE的attachEvent中的this总是指向全局对象window

8.什么是跨域?

        跨域就是,从网页去请求另一个域名的资源时,如果有域名、端口、协议其中一个不同,都会导致浏览器跨域。这是浏览器的一种保护机制。

常用解决方案:

  • 跨域资源共享(CORS)
  • nginx代理跨域 
  • nodejs中间件代理跨域
  • sonp跨域
  • postMessage

9.cookie和storage的区别?

  • 存储大小不同,cookie空间只有4k,localStorage和SeesionStorage有5M
  • 生命周期不同,cookie可以设置生命周期,localstorage生命周期是永久,sessionstorage生命周期是会话级别,浏览器关闭就销毁
  • 作用域不同,cookie前后端都可以修改,storage只用于前端    
  • cookie会自动携带在请求中,localStorage和SeesionStorage不会 

10.get和post的区别?

  • 请求方式不同,一种语意是获取,一种是提交,通常在请求数据时用get,修改数据时用post
  • 参数位置不同,get 是在拼接在url后面,post是在请求体body里
  • 参数类型不同,get只能携带查询字符串,post可以携带json、formdata格式还有其他格式
  • get参数长度有限制,post无限制
  • get是明文传递参数,post是密文,get不安全
  • get会被浏览器主动缓存,post不会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源模型应用落地-LangChain高阶-智能体探究-agent类型(一)

一、前言 大模型具有非常强大的功能,可以解答疑问、撰写报告和文档、总结内容、进行翻译等各种日常工作任务。然而,大模型还可以应用于更多的场景,发挥出更强大的作用。 通过智能体,我们可以实现许多有价值的事情,比如:在日常生活中,我们能借助智能体实现智能家居的自动化…

【渗透入门】SQL注入

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 什么是sql注入sql注入举例防御方式练习靶场 什么是sql注入 SQL注入是一种网络安全漏洞,攻…

【Android源码】Gerrit安装

前言 如果你打开 https://android.googlesource.com/platform/manifest,就会发现,google官方管理Android源码,使用的是Gerrit。Android系统源码是非常大的,用Git肯定是不适合。对于大型项目,得用Gerrit,今…

NoSQL之Redis高可用与优化

一、Redis高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证…

二叉树的链式访问 与 二叉树专题

目录 二叉树的前、中、后序遍历求二叉树第K层节点的个数二叉树查找值为x的节点leetcode相同的树对称二叉树二叉树的前序遍历另一棵子树牛客 二叉树的遍历 二叉树的前、中、后序遍历 1.前序遍历:先访问根节点,再访问左子树,最后访问右子树 根…

【备忘】fastadmin 如何获取列表选中行的pk

去官方搜没搜出来,还得是万能的网友厉害。 //获取选中项 $(document).on("click", ".btn-selected", function () {// 获取选中项idsconsole.log(JSON.stringify(Table.api.selectedids(table)));// 获取选中项所有数据console.log(JSON.strin…

输入一个整数n,输出n的约数为质数的数?两个问题n的约数问题和n的质数问题

输入一个整数n,输出n的约数为质数的数? 一.首先解决n的质数的问题(1)枚举法(2)埃氏筛 二.解决n的质数约数问题 一.首先解决n的质数的问题 (1)枚举法 考虑质数的定义:在大…

conda中创建环境并安装tensorflow1版本

conda中创建环境并安装tensorflow1版本 一、背景二、命令三、验证一下 一、背景 最近需要使用tensorflow1版本的,发个记录! 二、命令 conda create -n tf python3.6 #创建tensorflow虚拟环境 activate tf #激活环境,每次使用的时候都…

理解策略梯度方法:从REINFORCE到PPO

今年2月的时候,导师突然告诉我Ron William离世了。他算是我导师的 a life time friend,关系很好,我做毕业论文的时候,他还来参与了论文的答辩。Ron是一个很友善的老头,和他在强化学习领域的影响力比起来,本…

汽车信息安全--数据安全:图像脱敏

General 随着车联网的发展,汽车越来越智能化,就像是一部“装着四个轮子的手机”。 有人说,智能手机就如同一部窃听器,无论你开机或者关机,它都会无时不刻地监听着用户的一举一动。 可想而知,智能车辆上…

马工程刑法期末复习笔记重点2

马工程刑法期末复习笔记重点2

SpringBoot 参数校验

参数校验 引入springvalidation依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>参数前添加Pattern public Result registry(Pattern(regexp &qu…

Java面向对象练习(2.商品类)(2024.7.4)

商品类 package Supermarket20240704;public class Commodity {private String name;private double price;private int inventory;public Commodity(){};public Commodity(String name, double price, int inventory){this.name name;this.price price;this.inventory inv…

Java核心技术【十九】Iterator与增强for循环

Java中的Iterator与增强for循环 在Java编程中&#xff0c;迭代是处理集合元素的一种常见操作。Java提供了多种迭代集合元素的方式&#xff0c;其中最常用的两种是Iterator和增强for循环&#xff08;也称为“for-each”循环&#xff09;。本文将深入探讨这两种迭代方式的特性和…

CLAM用于弱监督WSI分析

计算病理学&#xff08;computational pathology&#xff09;下的深度学习方法需要手动注释大型 WSI 数据集&#xff0c;并且通常存在领域适应性和可解释性较差的问题。作者报告了一种可解释的弱监督深度学习方法&#xff0c;只需要WSI级标签。将该方法命名为聚类约束注意力多实…

Perl 格式化输出:提升代码可读性的技巧

引言 Perl 是一种功能强大的脚本语言&#xff0c;广泛用于文本处理、系统管理、网络编程等多个领域。在 Perl 编程中&#xff0c;代码的格式化输出不仅有助于提升代码的可读性&#xff0c;还能增强程序的用户体验。本文将详细介绍如何在 Perl 中实现代码的格式化输出。 Perl …

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十一)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 31 节&#xff09; P31《30.数据持久化-关系型数据库》 上一节中学习了使用用户首选项的方式实现数据持久化&#xff0c;但用户首…

微机原理 选择题

D C MOV、PUSH、POP、XLAT&#xff08;查表&#xff09;、IN、OUT不影响标志位 D B D C D C D B 1. (单选题, 5分)8位无符号数(字节)表示的数值范围是( ), 16位无符号数(字)表示的数值范围是( )。 A. 0~128 0~32768B. 0~255 0~655…

为什么 npm run serve 正常,npm run build 就报错:digital envelope routines::unsupported

这个错误通常与 Node.js 版本和使用的加密算法有关。让我解释一下原因和可能的解决方案&#xff1a; 错误原因 这个错误&#xff08;“error:0308010C:digital envelope routines::unsupported”&#xff09;通常发生在以下情况&#xff1a; 使用较新版本的 Node.js&#xf…

Vscode快捷键崩溃

Vscode快捷键崩溃 Linux虚拟机下使用vscode写代码【ctrlA&#xff0c;CtrlC&#xff0c;CtrlV】等快捷键都不能使用&#xff0c;还会出现“NO text insert“等抽象的指令&#xff0c;问题就是不知道什么时候装了一个VIM插件&#xff0c;让他滚出电脑》》》