常见的HTML5基础知识面试题汇总

常见的HTML5基础知识面试题汇总

1、HTML5的存储类型有哪些?

  答:HTML5支持本地存储,速度快而安全。有两种不同的对象可用来存储数据:1)localStorage,适用于长期存储数据,浏览器关闭后数据不丢失;2)sessionStorage,存储的数据在浏览器关闭后自动删除。

  2、HTML5支持哪些新媒体元素?

  答:音频、视频、作为外部应用的容器、定义媒体的文本跟踪、多种媒体源的支持。

  3、HTML5应用缓存是什么,和浏览器缓存有什么区别?

  答:应用程序缓存是HTML5的重要特性之一,提供了离线使用功能,让应用程序可以获取本地的网站内容,例如 HTML、CSS、图片以及Javascript。这个特性可以提高网站性能,它的实现借助于manifest文件。与传统浏览器缓存相比,它不强制用户访问的网站内容被缓存。

  4、简述以下你对ajax的理解。

  答:ajax的全称是“Asynchronous JavaScript and XML”,即异步的 JavaScript和XM L。 它是指一种创建交互式网页应用的网页开发技术,可以实现页面的异步请求和局部刷新。

  5、ajax应用和传统Web应用相比有什么不同?

  答:在传统的 Javascript编程中,如果想得到服务器端数据库或文件上的信息,或者发送客户端信息到服务器,需要建立一个 HTM L form然后 GET或者 POST数据到服务器端,程序的运行速度很慢且用户交互较差。使用 AJAX技术, 就可以使 Javascript通过 XMLHttpRequest对象直接与服务器进行交互。

  6、 ajax的交互模型如何理解,同步和异步有什么区别?

  答:ajax主要用于实现从服务器获取数据并局部刷新页面。ajax在浏览器端引入一个执行引擎,它一边接收 user的请求,一边传送数据给服务器,并把服务器端返回的结果展现给user。同步:脚本会停留并等待服务器发送回复然后继续;异步:脚本不停留并处理可能的回复。

  7、什么是逻辑短路?

  答:逻辑短路是对于逻辑运算而言,是指仅计算逻辑表达式中的一部分便能确定结果,而不对整个表达式进行计算的现象。

  8、JavaScript中局部变量和全局变量有什么区别?

  答:全局变量拥有全局作用域,在JavaScript代码的任何地方都可以访问,如果不使用var关键字,则将声明全局变量;在函数内声明的变量只在函数体内有定义,即为局部变量,其作用域是局部性的。

wps1473_tmp.png

  9、JavaScript中的函数作用域是什么?

  答:JavaScript中的函数作用域是指变量在声明它的函数体以及这个函数体嵌套的任意函数体内都是有定义的。这意味着在函数体内声明的所有变量在整个函数体内始终是可见的,这种特性也被称为“声明提前”,即函数内声明的所有变量(不涉及到赋值)都被提前至函数的顶部声明。

  10、在JavaScript中,如何模拟栈操作?

  答:栈( stack)是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。在JavaScript中,可以使用数组及其相关操作来模拟栈操作。首先,使用数组存储一列元素,然后使用数组的 push()方法在数组的尾部添加指定的元素,类似于在栈顶添加元素,即顶部入;然后使用数组的 pop()删除并返回数组尾部的元素,类似于顶部出栈,即后入的元素先出。

<h1>js基础面试题</h1> <h2>1、js 的类型</h2> 1.认识js的基本类型 > typeof undefined, //undefined typeof 'abc' ,//string typeof 123 ,//number typeof true ,//boolean typeof {} ,//object typeof [] ,//object typeof null ,//object typeof console.log ,//function typeof Symbol(1) // symbol <div>2、js 类型的原型搜索链</div> > Number.__proto__ === Function.prototype // true Boolean.__proto__ === Function.prototype // true String.__proto__ === Function.prototype // true Object.__proto__ === Function.prototype // true Function.__proto__ === Function.prototype //true Array.__proto__ === Function.prototype // true RegExp.__proto__ === Function.prototype // true Error.__proto__ === Function.prototype // true Date.__proto__ === Function.prototype // true <h2>2、js 引用类型与值类型</h2> <div>1.引用类型</div> > var a = {"x" : 1} ; > var b = a ; > a.x = 2; > console.log(b.x); //2 > a = { "x" : 3}; > console.log(b.x); //2 > <div>2.值类型</div> > var a = 88; > var b = a; > a = 98; > console.log(b); // 98 > b = 100; > console.log(b) ; // 100 > console.log(a) ; // 98 3.值类型跟引用类型的总结 >function abc(x){ > console.log(typeof (x)); //undefinded 值类型 > console.log(typeof (x)); //number 值类型 > console.log(typeof (‘abc’)); //string 值类型 > console.log(typeof (true)) ; //Boolean 值类型 > console.log(typeof (function(){ })) //function 引用类型 > console.log(typeof ([1,"a",,true])) //Array 引用类型 > console.log(typeof ({ a:10, b: 20})) //Object 或者json 引用类型 > console.log(typeof (null)); // null 引用类型 console.log(typeof (new Number(10))); //内置对象 引用类型 } >这里还有一道变态的前端面试题,仅限参考 >var a = { a: 1} ; >var b = a: >a.x = a = { a: 2 }; >console.log( a.x ); // --> undefined >console.log( b.x ) ; [ object Object ] > >到现在我都没搞懂这是其中的赋值问题 <h2>ES6 中的 var , let , const 的区别</h2> > 1.使用 var 声明的是变量,其作用域为该语句所在的函数内部,且存在变量提升现象 > 2.使用 let 声明的是变量,其作用域为该语句所在的代码块内,不存在变量提升 > 3.使用 const 声明的是常量,其作用域为该语句所在的代码块内,不存在变量提升, 值是不可修改更改的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值