前端面试题总结一(js变量和函数声明提前相关)

好久没有更新博客了,^_^写写博客吧!下面是我总结的一些面试题,希望对大家有所帮助

(1)题目如下:

alert(a)
  var a=1
  function a(){
    alert(a)
 }

好多人肯定会觉得输出的结果是undefined,那你就错了,因为function也要声明提前的所以输出的结果应该是::

? a(){
alert(a)
}

更有意思的来了如果我把上面的题改为如下:

alert(a)
function a(){
 alert(a)
}
var a=1

输出的结果应该是::

? a(){
alert(a)
}

注意:***函数提升优先级比变量提升要高,且不会被变量声明覆盖,但是会被变量赋值覆盖***

如果下面

alert(a)
function a(){
 alert(a)
}
var a=1
alert(a)

这个的输出结果为::

第一次输出::
? a(){
alert(a)
}

第二次输出::
1

(2)题目如下:

var foo = "function";

var foo;//它只是定义,全不会覆盖变量

alert(foo);//所以返回 function

(3)题目如下:

var getName = function(){
    console.log(2);
}
function getName (){
    console.log(1);
}

getName();

输出结果:

2

如果我稍作改动

foo();

var foo;

function foo(){

console.log(1);

}

foo=function(){

console.log(2);

}

其输出的结果::

1

处理过程为:

function foo(){

console.log(1);

}

var foo; //并不执行,重复的声明

foo();

foo=function(){

console.log(2);

}

***函数会首先被提升,然后才是变量***

原文地址:https://www.cnblogs.com/hongsusu/p/9055513.html

时间: 2024-10-11 11:37:35

前端面试题总结一(js变量和函数声明提前相关)的相关文章

JS变量与函数声明提升补充

1.默认情况下,函数声明的优先级高于变量声明的优先级:一旦变量被赋值,不会被函数声明覆盖 var a; function a() { console.log('a'); } var b = 1; function b() { console.log('b'); } console.log(a);//function a console.log(b);//b 2.命名函数表达式的标示符(即函数名称)在外部作用域是无效的 var f = function foo(){ return typeof f

变量 和函数声明提前问题

经验总结: 1.变量的声明被提前到作用域顶部,赋值保留在原地: 2.函数声明整个被提前: 3.函数作为值整个赋给变量时,只有变量“被提前”了,函数没有“被提前”. 作为最佳实践: 变量声明一定放在作用域/函数最顶部(JavaScript只有函数作用域). 举例: // 变量声明被提前到作用域顶部,赋值保留在原地. var a = 'out'; (function inside(){ alert('before: ' + a); //undefined var a = 'in'; alert('a

前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新 񘞮

原文: http://blog.gqylpy.com/gqy/438 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

前端面试题整理(js)

1.HTTP协议的状态消息都有哪些? HTTP状态码是什么: Web服务器用来告诉客户端,发生了什么事. 状态码分类: 1**:信息提示.请求收到,继续处理2**:成功.操作成功收到,分析.接受3**:重定向.完成此请求必须进一步处理4**:客户端错误.请求包含一个错误语法或不能完成5**:服务器错误.服务器执行一个完全有效请求失败 状态码详解: 100(继续):服务器收到的请求不完整,但服务器没有拒绝请求,客户端应重新发送一个完整的请求. 101(切换协议):服务器改用别的协议了 200(成功

前端面试题 -- JS篇

前端面试题 -- JS篇 类型 1.js中有哪些数据类型,并解释清楚原始数据类型和引用数据类型 js中共有null,undefined, string,number,boolean,object六种数据类型. 原始数据类型: null,undefined, string,number,boolean 引用数据类型:object 两者的区别:1)值存储方式不同: 原始数据类型:将变量名和值都存储在栈内存中 引用数据类型:将变量名存储在栈内存中,将值存储在堆内存中,并在栈内存中存储值的地址,该地址指

各大互联网公司前端面试题(js)

对于巩固复习js更是大有裨益.    初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型:String,Boolean,Number,Undefined, Null 引用数据类型:Object(Array,Date,RegExp,Function) 那么问题来了,如何判断某变量是否为数组数据类型? 方法一.判断其是否具有“数组性质”,如slice()方法.可自己给该变量定义slice方

前端面试题(JS篇)

原题地址:http://handyxuefeng.blog.163.com/blog/static/454521722013111714040259/ 好吧,最近打算换工作,所以关注比较多的是面试题,这套还不错,留下~~ 1.JS相关问题: 解释下事件代理(基础题) 解释下 JavaScript 中 this 是如何工作的(始终指向调用当前函数的对象) 解释下原型继承的原理. AMD vs. CommonJS? 什么是哈希表? 解释下为什么接下来这段代码不是 IIFE(立即调用的函数表达式):f

前端面试题 | JS部分(附带答案)

目前在找工作,所以各方收集了一堆面试题.其实刷面试题的过程也能更新自己对知识的认识,所以也提醒自己多看多理解.如果对下面题目有更深理解,会实时更新.遇到新题目,也会不定时更新.希望能帮助到部分朋友- 一.各种函数方法定义及区别 1. typeof运算符和instanceof运算符以及isPrototypeOf()方法的区别 typeof是一个运算符,用于检测数据的类型,比如基本数据类型null.undefined.string.number.boolean,以及引用数据类型object.func

Web前端面试题集锦

Web前端面试题集锦 前端开发面试知识点大纲: 注意 转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/5927180.html )作者:wangwen896 HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应. JavaScript: 数据类型.面向对象.继承.闭包.插件.作用域.跨域.原型链.模块化.自定义事件.内存泄漏.事件机制.异步装载回调.模板