前端面试理论题

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

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

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

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

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

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

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

2.js由那三部分组成?

Java Script的三个主要组成部分是:ECMAScript(核心),DOM(文档对象模型),BOM(浏览器对象模型)。

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

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

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

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

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

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

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

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

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

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

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

有 基本数据类型 和 引用数据类型

基本数据类型:

undefined(未定义)

null(空值)  

string(字符串)

number(数字)

boolean(布尔值)

引用数据类型:

object  对象

array  数组

function  函数

使用  type of  判断数据类型

判断数据类型的方法:object.prototype.tostring.call()

7.js中的命名规则

1. 变量

  命名方法:小驼峰式命名法。

  命名规范:前缀应当是名词。

2. 常量

  命名方法:名称全部大写。

  命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词。

  1. 函数

  命名方法:小驼峰式命名法。

  命名规范:前缀应当为动词。

4. 构造函数 

  命名方法:大驼峰式。

  命名规范:前缀为名称。

5. 类的成员

  ① 公共属性和方法:小驼峰。

  ② 私有属性和方法:前缀为_(下划线),后面小驼峰。

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

一、存储上的区别

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

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

二、比较上的区别

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

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

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

三、赋值上的区别

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

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

8.javascript 的 typeof 返回哪些数据类型?(写英文)

typeof 共返回6种数据格式:

1、object

 2、undefined

 3、string

 4、number

 5、boolean

 6、function

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

9.如何判断 NaN?

1、NaN 不是一个数字且数据类型为 number,而且不等于自身 

  可直接采用内置方法 isNaN

function isNaN(n) {

if (n !== n) {

return true;

} else {

return false;

}}

2、利用 NaN 是唯一个不等于任何自身的特点

var a=NaN;

a==a; //false

3、object.is 方法

console.log(Object.is("a", NaN));

console.log(Object.is(1, NaN));

console.log(Object.is(NaN, NaN));

10. null和undefined的区别是什么?

null  表示为空,没有值

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

null是一个表示"无"的对象,转为数值时为0

undefined是一个表示"无"的原始值,转为数值时为NaN

11.JavaScript中undefined和not defined的区别

undefined:不明确的,也就是不知道用来干嘛的(虽有无值)

not defined: 未定义的,也就是突然冒出来的(无中生有)

12. 什么是全局污染?怎么避免全局污染?  

全局污染:当使用了相同的全局变量或定义了相同命名的顶层函数,都会造成命名冲突

解决方法:只创建一个全局变量,并定义该变量为当前应用容器,把其他变量追加在该命名空间下。及利用匿名函数(自执行函数)将脚本包裹起来。

13. javaScript输出数据的方法?

      使用 alert()弹出警告框

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

      使用 docunment.innerHTML 写到HTML 元素中

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

13.例举3种强制类型转换和2种隐式类型转换?强制类型转换和隐式类型转换的区别是什么?

强制转换;String();Boolean();Number (数字)

隐式转换;== 之间发生隐式转换

          一元运算符 + - ! 

区别是;强制类型转换有确定的方法,隐式类型转换只能通过运算符来进行隐式转换

14.在 js 中哪些值会被隐式转换为 false

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

14.运算符分为哪几类?哪些运算符常用作判断?简述运算符的优先级

运算符包含6大类:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元(目)运算符。

逻辑运算符常用作布尔判断

运算符优先级:小括号、一元运算符、算术运算符、关系运算符、相等运算符、逻辑运算符赋值运算符、逗号运算符

15.++i 和i ++ 的执行顺序有什么区别?

++i 是先自增,后赋值。

i++ 是先赋值,然后再自增。

16.等于和绝对等于的区别?

==:会进行类型的转换之后再判断两者是否相等

===:不会进行数据类型的转换,先判断两边的数据类型是否相等,如果数据类型相等的话才会进行接下来的判断,再进行等式两边值得判断

等于就是对类型不同,但是值相同时,会进行隐式类型转换,已达到判断的目的;

绝对等于,在判断时会先进行类型判断,如果类型相等的话才会进行接下来的判断

16.请写出js的入口函数?并讲解入口函数的作用。

window.οnlοad=function(){} 改变加载顺序,等待页面加载完毕之后执行。

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

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

相关文章

ElasticSearch之Close index API

关闭指定的索引。 索引关闭之后&#xff1a; 停止对读、写操作的响应。停止检索操作的响应。在索引关闭前&#xff0c;允许执行的操作&#xff0c;关闭之后均不允许执行。ElasticSearch取消对索引的相关维护操作&#xff0c;包含内存中的数据结构&#xff0c;以及保存在存储中…

c++--运算符重载

1.重载的运算符 (1).重载运算符函数的参数数量与该运算符作用的运算对象数量一样多。 (2).除了重载的函数调用运算符operator()之外&#xff0c;其他重载运算符不能含有默认实参。 (3).对一个重载的运算符&#xff0c;其优先级和结合律与对应的内置运算符保持一致。 (4).当一个…

2022年全国大学生数据分析大赛医药电商销售数据分析求解全过程论文及程序

2022年全国大学生数据分析大赛 医药电商销售数据分析 原题再现&#xff1a; 问题背景   20 世纪 90 年代是电子数据交换时代&#xff0c;中国电子商务开始起步并初见雏形&#xff0c;随后 Web 技术爆炸式成长使电子商务处于蓬勃发展阶段&#xff0c;目前互联网信息碎片化以…

破解研发人员的绩效考核难题

当下的中国正处于产业结构调整的重要转型时期。创新成为当下企业寻求稳健和长远发展必不可少的关键。要建立属于自己的企业特色&#xff0c;开发出属于自己的产品和服务并在激励竞争的市场下求得生存和发展&#xff0c;企业的自主研发活动已经越来越重视。纵观那些世界500强企业…

【Centos】在CentOS上搭建Squid代理服务器详解

在CentOS上搭建Squid代理服务器详解 一、安装 首先&#xff0c;通过yum包管理工具安装Squid代理服务器和httpd-tools&#xff08;用于生成密码文件&#xff09;&#xff1a; yum install squid -y yum install httpd-tools -y二、生成密码文件 创建用于存储用户认证信息的目…

杨辉三角

打印n行杨辉三角&#xff0c;n<10。 输入格式: 直接输入一个小于10的正整数n。 输出格式: 输出n行杨辉三角&#xff0c;每个数据输出占4列。 输入样例: 5输出样例: 11 11 2 11 3 3 11 4 6 4 1代码长度限制 16 KB 时间限制 400 ms 内存限制 6…

css实现正六边形嵌套圆心

要实现一个正六边形嵌套圆心&#xff0c;可以使用CSS的::before和::after伪元素以及border-radius属性。以下是具体的解析和代码&#xff1a; 使用::before和::after伪元素创建正六边形。设置正六边形的背景色。使用border-radius属性使正六边形的内角为60度。在正六边形内部创…

【matlab程序】matlab画子图的多种样式

【matlab程序】matlab画子图的多种样式

js判断是否是搜索引擎(蜘蛛)、爬虫

/*** description 对象$BP&#xff0c;包含三个方法和一个属性*/var $BP {// 第一&#xff1a;通过ua判断是非爬虫/*** description 判断是否为爬虫* returns {boolean} 返回布尔值&#xff0c;true表示不是爬虫&#xff0c;false表示是爬虫*/isBot() {return /bot|googlebot|…

【漏洞复现】速达软件存在任意文件上传

漏洞描述 速达软件全系产品存在任意文件上传漏洞,未经身份认证的攻击者可以通过此漏洞上传恶意后门文件,执行任意指令,造成服务器失陷 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、…

fastadmin列表头部按钮批量上传视频

上传界面通过layui生成 index.html <a href="{:url(video/piliangadd)}" class="btn btn-success btn-piliangadd btn-dialog {:$auth->check(video/piliangadd)?:hide}" title="批量上传" ><i class="fa fa-plus">…

flask之邮件发送

一、安装Flask-Mail扩展 pip install Flask-Mail二、配置Flask-Mail 格式&#xff1a;app.config[参数]值 三、实现方法 3.1、Mail类 常用类方法 3.2、Message类&#xff0c;它封装了一封电子邮件。构造函数参数如下&#xff1a; flask-mail.Message(subject, recipient…

求二维数组周边元素的累加和

求一个二维数组周边元素的累加和。 输入一个二维数组的行数m&#xff08;m<10&#xff09;&#xff0c;列数n(n<10)&#xff0c;二维数组的各元素值。输出周边元素之和。 输入格式: 输入的第一行为矩阵的行数和列数&#xff0c;从第二行开始&#xff0c;为矩阵元素的输…

【产品经理】业务问题的诊断:由简入繁,渐进成长

产品的价值在于解决了用户的问题。业务问题的诊断&#xff0c;发现用户的真实问题&#xff0c;拨云见日。 产品的价值在于解决了一定范围的问题&#xff0c;让整体的业务运转、参与角色都能收到因为产品的贡献而产生的价值或便利。微信解决了熟人之间的沟通问题&#xff0c;支付…

[C#]文件的读写-1

参考代码: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text;namespace FileDemo {class Program{static void Main(string[] args){//1.FileStream fFile.Open("cs.bin",FileMode.Create); //如果文件存在…

TA-Lib学习研究笔记(九)——Pattern Recognition (0)

TA-Lib学习研究笔记&#xff08;九&#xff09;——Pattern Recognition &#xff08;0&#xff09; 1.Pattern Recognition Functions 形态识别 所有的形态函数&#xff0c;大部分可以在股票软件中找到&#xff0c;通过Python的talib实现形态识别&#xff0c;可以和股票软件…

C语言-字符串输入输出

字符串赋值 char *t “title”;char *s;s t;并没有产生新的字符串&#xff0c;只是让指针s指向了t所指的字符串&#xff0c; 对s的任何操作就是对t做的 字符串输入输出 char string[8];scanf(“%s”, string);printf(“%s”, string);scanf读入一个单词&#xff08;到空格…

【React + Typescript】使用WebPack包管理、各种扩展插件组成的初始模板,开源协议:CC-BY-4.0

React Typescript Webpack 模板 模板展示项目结构使用的部分扩展包页面配置代码Layout 公共容器组件路由Jspackage.json 开源模板下载TIP 模板展示 项目结构 使用的部分扩展包 &#x1f4c2; System ├── &#x1f4c2; Plugin │ ├── &#x1f4c4; file-loader | 在处…

idea连接mysql详细讲解

IDEA连接mysql又报错&#xff01;Server returns invalid timezone. Go to Advanced tab and set serverTimezone prope 前进的道路充满荆棘。 错误界面 IDEA连接mysql&#xff0c;地址&#xff0c;用户名&#xff0c;密码&#xff0c;数据库名&#xff0c;全都配置好了&…

Mybatis异常org.apache.ibatis.binding.BindingException: Parameter “xxx“ not found

问题1: 可能是 mybatis 的xml&#xff0c;对应的mapper接口缺少Param注解&#xff0c;或者Param注解的value与xml的不一致 切记只要参数不是一个集合类型向下图或者多个参数值就要加Param注解 问题2: mybatis的xml&#xff0c;存在多余的注释。注释中包含#{}、${}。注释掉的代…