前端面试题-js(三)

news2024/12/22 22:45:35

31 介绍js有哪些内置对象

  • Object 是 JavaScript 中所有对象的⽗对象
  • 数据封装类对象: Object 、 Array 、 Boolean 、 Number 和 String
  • 其他对象: Function 、 Arguments 、 Math 、 Date 、 RegExp 、 Error

32 说⼏条写JavaScript的基本规范

  • 不要在同⼀⾏声明多个变量
  • 请使⽤ =/! 来⽐较 true/false 或者数值
  • 使⽤对象字⾯量替代 new Array 这种形式
  • 不要使⽤全局函数
  • Switch 语句必须带有 default 分⽀
  • If 语句必须使⽤⼤括号
  • for-in 循环中的变量 应该使⽤ var 关键字明确限定作⽤域,从⽽避免作⽤域污

33 JavaScript有⼏种类型的值

  • 栈:原始数据类型( Undefined , Null , Boolean , Number 、 String )
  • 堆:引⽤数据类型(对象、数组和函数)
  • 两种类型的区别是:存储位置不同;
  • 原始数据类型直接存储在栈( stack )中的简单数据段,占据空间⼩、⼤⼩固定,属于被频繁使⽤数据,所以放⼊栈中存储;
  • 引⽤数据类型存储在堆( heap )中的对象,占据空间⼤、⼤⼩不固定,如果存储在栈中,将会影响程序运⾏的性能;引⽤数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引⽤值时,会⾸先检索其
  • 在栈中的地址,取得地址后从堆中获得实体
    在这里插入图片描述

34 javascript创建对象的⼏种⽅式

javascript 创建对象简单的说,⽆⾮就是使⽤内置对象或各种⾃定义对象,当然还可以⽤ JSON ;但写法有很多种,也能混合使⽤
  • 对象字⾯量的⽅式
person={firstname:"Mark",lastname:"Yun",age:25,eyecolor:"black"};
  • ⽤ function 来模拟⽆参的构造函数
function Person(){}
var person=new Person();//定义⼀个function,如果使⽤new"实例化",该function可
person.name="Mark";
person.age="25";
person.work=function(){
alert(person.name+" hello...");
}
person.work();
  • ⽤ function 来模拟参构造函数来实现(⽤ this 关键字定义构造的上下⽂属性)
function Pet(name,age,hobby){
this.name=name;//this作⽤域:当前对象
this.age=age;
this.hobby=hobby;
this.eat=function(){
alert("我叫"+this.name+",我喜欢"+this.hobby+",是个程序员");
}
}
var maidou =new Pet("⻨兜",25,"coding");//实例化、创建对象
maidou.eat();//调⽤eat⽅法
  • ⽤⼯⼚⽅式来创建(内置对象)
 wcDog.name="旺财";
wcDog.age=3;
wcDog.work=function(){
alert("我是"+wcDog.name+",汪汪汪......");
}
wcDog.work();
  • ⽤原型⽅式来创建
var wcDog =new Object();

function Dog(){}
Dog.prototype.name="旺财";
Dog.prototype.eat=function(){
alert(this.name+"是个吃货");
}
var wangcai =new Dog();
wangcai.eat();
  • ⽤混合⽅式来创建
function Car(name,price){
this.name=name;
this.price=price;
}
Car.prototype.sell=function(){
alert("我是"+this.name+",我现在卖"+this.price+"万元");
}
var camry =new Car("凯美瑞",27);
camry.sell();

35 eval是做什么的

  • 它的功能是把对应的字符串解析成 JS 代码并运⾏
  • 应该避免使⽤ eval ,不安全,⾮常耗性能( 2 次,⼀次解析成 js 语句,⼀次执⾏)
  • 由 JSON 字符串转换为JSON对象的时候可以⽤ eval,var obj =eval(‘(’+ str +‘)’)

36 null,undefined 的区别

  • undefined 表示不存在这个值。
  • undefined :是⼀个表示"⽆"的原始值或者说表示"缺少值",就是此处应该有⼀个值,但是还没有定义。当尝试读取时会返回 undefined
  • 例如变量被声明了,但没有赋值时,就等于 undefined
  • null 表示⼀个对象被定义了,值为“空值”
  • null : 是⼀个对象(空对象, 没有任何属性和⽅法)
  • 例如作为函数的参数,表示该函数的参数不是对象;
  • 在验证 null 时,⼀定要使⽤ === ,因为 == ⽆法分别 null 和 undefined

37 [“1”, “2”, “3”].map(parseInt) 答案是多少

  • [1, NaN, NaN] 因为 parseInt 需要两个参数 (val, radix) ,其中 radix 表示解析时⽤的基数。
  • map 传了 3 个 (element, index, array) ,对应的 radix 不合法导致解析失败。

38 javascript 代码中的"use strict";是什么意思

  • use strict 是⼀种 ECMAscript 5 添加的(严格)运⾏模式,这种模式使得 Javascript在更严格的条件下运⾏,使 JS 编码更加规范化的模式,消除 Javascript 语法的⼀些不合理、不严谨之处,减少⼀些怪异⾏为

39 JSON 的了解

  • JSON(JavaScript Object Notation) 是⼀种轻量级的数据交换格式
  • 它是基于 JavaScript 的⼀个⼦集。数据格式简单, 易于读写, 占⽤带宽⼩
  • JSON 字符串转换为JSON对象:
var obj =eval('('+ str +')');
var obj = str.parseJSON();
var obj = JSON.parse(str);
  • JSON 对象转换为JSON字符串:
 var last=obj.toJSONString();
var last=JSON.stringify(obj);

40 js延迟加载的⽅式有哪些

  • defer 和 async 、动态创建 DOM ⽅式(⽤得最多)、按需异步载⼊ js

41 同步和异步的区别

  • 同步:浏览器访问服务器请求,⽤户看得到⻚⾯刷新,重新发请求,等请求完,⻚⾯刷新,新内容出现,⽤户看到新内容,进⾏下⼀步操作
  • 异步:浏览器访问服务器请求,⽤户正常操作,浏览器后端进⾏请求。等请求完,⻚⾯不刷新,新内容也会出现,⽤户看到新内容

42 渐进增强和优雅降级

  • 渐进增强 :针对低版本浏览器进⾏构建⻚⾯,保证最基本的功能,然后再针对⾼级浏览器进⾏效果、交互等改进和追加功能达到更好的⽤户体验。
  • 优雅降级 :⼀开始就构建完整的功能,然后再针对低版本浏览器进⾏兼容

43 defer和async

  • defer 并⾏加载 js ⽂件,会按照⻚⾯上 script 标签的顺序执⾏
  • async 并⾏加载 js ⽂件,下载完成⽴即执⾏,不会按照⻚⾯上 script 标签的顺序执⾏

44 说说严格模式的限制

  • 变量必须声明后再使⽤
  • 函数的参数不能有同名属性,否则报错
  • 不能使⽤ with 语句
  • 禁⽌ this 指向全局对象

45 attribute和property的区别是什么

  • attribute 是 dom 元素在⽂档中作为 html 标签拥有的属性;
  • property 就是 dom 元素在 js 中作为对象拥有的属性。
  • 对于 html 的标准属性来说, attribute 和 property 是同步的,是会⾃动更新的
  • 但是对于⾃定义的属性来说,他们是不同步的

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

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

相关文章

【算法集训之线性表篇】Day 09

文章目录 题目基本设计思想代码实现效果 题目 定义三元组(a,b,c)(a,b,c均为整数)的距离D|a-b||b-c||c-a|。给定3个非空集合S1,S2,S3,按升序分别存储在三个数组中。请设计一个尽可能高效的算法,计算并输出所有有可能的三元组中的最…

TabView, DarkMode 的使用

1. TabView 选项卡视图的使用 1.1 实现 /// 选项卡视图 struct TabViewBootcamp: View {State var selectedTab: Int 0let icons: [String] ["heart.fill", "globe", "house.fill", "person.fill"]var body: some View {// tabView…

青岛大学_王卓老师【数据结构与算法】Week05_11_栈与递归_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础…

考虑设备动作损耗的配电网分布式电压无功优化(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Nginx】proxy_set_header的变量与X-Forwarded-For伪造客户端IP漏洞

前言 上面突然说,需要检查Nginx反向代理的安全问题并给出了修改方法,小白的我一脸懵逼,明明都是中文,连在一起咋就看不明白了。于是乎,对着修改内容简单学习了一下,在此做个记录,如有问题请大佬…

【Ubuntu】Ubuntu14 安装 open-jdk-1.7(open-jdk-7) 最新 持续更新中

【Ubuntu】Ubuntu14 安装 open-jdk-1.7(open-jdk-7) 最新 持续更新中 一、概述二、特别说明三、开发环境四、安装 open-jdk-1.7五、配置环境1、配置环境变量路径2、环境变量3、完成安装 一、概述 一个好的文章能够帮助开发者完成更便捷、更快速的开发。…

Hive3.1.2伪分布式安装

Hive3.1.2安装 前言 Hive是何物,自己去百度,在此不多bb,直接开整… 学习一个组件,个人觉得最重要的是先学会安装再说,巧妇难为无米之炊撒… 下载 下载地址:https://downloads.apache.org/hive/hive-3.…

Python探索金融数据进行时间序列分析和预测

大家好,时间序列分析是一种基于历史数据和趋势分析进行预测的统计技术。它在金融和经济领域非常普遍,因为它可以准确预测趋势并做出明智的决策。本文将使用Python来探索经济和金融数据,执行统计分析,并创建时间序列预测。 我们将…

面试题更新之-CSS Hack是什么?ie6,7,8的hack分别是什么?

文章目录 导文CSS Hack的定义广泛应用的CSS Hack技巧ie6,7,8的hack分别是什么? 导文 面试题更新之-CSS Hack是什么?ie6,7,8的hack分别是什么? CSS Hack的定义 CSS Hack指的是在CSS中使用一些特定的代码或技巧,通过利用不同浏览器对CSS实现的…

大学生用一周时间给麦当劳做了个App(安卓版)

背景 有个大学生粉丝最近私信联系我,说基于我之前开源的多语言项目做了个仿麦当劳的项目,虽然只是个样子货,但是收获颇多,希望把自己写的代码开源出来供大家一起学习进度。这个小伙伴确实是非常积极上进,很多大学生&a…

Grid++Report 6.8.6 Crack

GridReport报表开发工具总体介绍 报表开发工具概述 GridReport是一款同时支持C/S软件(桌面程序)与B/S软件(WEB程序)开发的报表工具,功能全面易学易用。C/S开发适用于VB.NET、C#、VB、VC、Delphi、CBuilder、QT与易语言等。B/S开发适用于ASP.NET(C# & VB.NET),…

蒲公英打包环境搭建碰到问题

一:证书那边选择手动,不要自动,——》debug配置dev证书,release配置ad-hoc证书 二:证书有时候不生效,删除重新下载。~/Library/MobileDevice/Provisioning Profiles 三:更新测试手机时&#…

数字化孪生技术在工业上的应用场景和案例分享

编者按:数字化孪生是一个完整的生命周期概念,它从设计和制造开始,贯穿整个生产过程,直到产品退役。数字化孪生将现实世界和虚拟世界相结合,使企业能够更好地理解和优化物理系统的运行情况,从而提高生产效率…

Java多线程下的单例模式参考

Java多线程下的单例模式参考 单例有多种的写法,本例是懒汉式单例的一种写法。在高并发环境下需要注意的是: 1.单例在并发访问并调用其相应的getInstance方法的时候也会造成创建多个实例对象,加锁是必要的。 2.使用synchronized是比较好的解…

基于预测控制模型的自适应巡航控制仿真与机器人实现(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 自适应巡航控制技术为目前由于汽车保有量不断增长而带来的行车安全、驾驶舒适性及交通拥堵等问题提供了一条有效的解决途径&am…

JS、Vue鼠标拖拽

JS代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevic…

Python Web框架 Flask 安装、使用

Python Web框架 Flask 安装 安装 Flask 框架 首先需要安装 Flask 框架, 可以通过以下命令安装: [rootlocalhost web]# pip3 install Flask Collecting FlaskDownloading Flask-2.0.3-py3-none-any.whl (95 kB)|██████████████████████████████…

七大排序算法——归并排序,通俗易懂的思路讲解与图解(完整Java代码)

文章目录 一、排序的概念排序的概念排序的稳定性七大排序算法 二、归并排序核心思想代码实现 三、性能分析四、七大排序算法性能对比 一、排序的概念 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0…

基于Java的考研教室在线预约系统/基于springboot的考研教室在线预约系统

摘 要 网络的广泛应用给生活带来了十分的便利。所以把考研教室在线预约与现在网络相结合&#xff0c;利用java语言建设考研教室在线预约系统&#xff0c;实现考研教室在线预约的信息化。则对于进一步提高考研教室在线预约发展&#xff0c;丰富考研教室在线预约能起到不少的促进…

Spark编程-RDD

RDD创建方式 第一种&#xff1a; 读取外部数据集。例如&#xff1a;从本地文件加载数据集&#xff0c;或者从HDFS文件系统、HBase等外部数据源中加载数据集。 Spark可以支持文本文件、SequenceFile文件&#xff08;Hadoop提供的 SequenceFile是一个由二进制序列化过的key/valu…