1.var let const区别var是ES5语法,let const是ES6语法; var有变量提升(不会报错,只会打印出undefined)var和let是变量可以修改,count是常量不可以修改let和count是块级作用域,var没有2.typeof能判断哪些类型undefined、string、number、boolean、symbol [值类型] object(注意 typeof null === ‘object’) [引用类型instanceof] function3.列举强制类型转换和隐式类型转换强制 parseInt parseFloat Number string toS...
题目:for (var i = 0; i < 5; i++) {setTimeout(function() {console.log(new Date, i);}, 1000); } console.log(new Date, i); 1、面对这段代码时给出的结果也不尽相同,以下是典型的答案: A. 20% 的人会快速扫描代码,然后给出结果:0,1,2,3,4,5; B. 30% 的人会拿着代码逐行看,然后给出结果:5,0,1,2,3,4; C. 50% 的人会拿着代码仔细琢磨,然后给出结果:5,5,5,5,5,5; 只要你对 JS 中同步和异步代码的区别、...
1、线程与进程的区别一个程序至少有一个进程,一个进程至少有一个线程。线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看...
hey,guys!我们一起总结一下JS预解析吧!首先,我们得搞清楚JS预解析和JS逐行执行的关系。其实它们两并不冲突,一个例子轻松理解它们的关系: 你去酒店吃饭,吃饭前你得看下菜谱,点下菜(JS预解析),但吃的时候还是一口一口的吃(JS逐行执行)! OK,解决下面五个问题,JS预解析就算过了~~(前提:对JS变量作用域有清晰理解)一、JS预解析是什么?其实就是对程序要用到的材料(变量,函数)给一个初始值,并存到一个表中(我自己...
前言一、面试题、答案以及总结js中截取字符串的方法 原文:http://www.cnblogs.com/YanYongSong/p/5291110.html
前言关于JavaScript的this指向问题,建议手动操作打印下内容题目var name = ‘222‘ var a = {name: ‘111‘,say: function() {console.log(this.name)} }var b = {name: ‘333‘,say: function(fn) {fn()} }a.say() b.say(a.say) 答案a.say() //111 b.say(a.say) //222 解析a.say()//this指向a,所以console.log(this.name)打印的值为111 b.say(a.say) //将a.say函数作为参数传给b.say(),而b.say中调用fn(),fn()并没有绑定在某一对象...
(1)javaScript怎么清空数组?如var arrayList = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]; 怎么清空 arrayList方法1:直接改变arrayList所指向的对象,原对象并不改变。arrayList = [];方法2:这种方法通过设置length=0 使原数组清除元素。arrayList.length = 0;方法3arrayList.splice(0, arrayList.length);(2)怎么判断一个object是否是数组(array)?方法1:使用 Object.prototype.toString 来判断是否是数组,这里使用call来使 to...
1.如何准确判断一个变量是数组类型2.写一个原型链继承的例子3.描述new一个对象的过程4.zepto(或其他框架)源码中如何使用原型链知识点:1.构造函数2.构造函数-扩展3.原型规则和示例4.原型链5.instanceof讲解:构造函数:一般函数为大写字母开头的都是构造函数,如下:function Foo(name,age){this.name=namethis.age=age//return this }var f = new Foo(‘L‘,20) ; //构造函数形成实例,可以创建多个对象;f是一个空对象,原型是Foovar...
有一道 JavaScript 面试题。f = function () { returntrue; }; g = function () { returnfalse; };(function() {if (g() && [] == ![]) {f = function () { returnfalse; };function g() { returntrue; }} })(); console.info(f());首先看前两行var f = function () { returntrue; }; var g = function () { returnfalse; };这两行定义了两个变量,而不是函数定义,变量是可以重新赋值的。第四行就比较有趣了(function () {if (g(...
调用对象位于作用域链的前端,局部变量(在函数内部用var声明的变量)、函数参数及Arguments对象都在函数内的作用域中——这意味着它们隐藏了作用域链更上层的任何同名的属性。 2010年9月14日,我去参加网易网页工程师招聘会,应聘JS工程师职位。有幸参加笔试,然后有幸栽在笔试,呵呵。废话少说,抓出音响极深的一题重新研究研究。 题目大概是:写出如下代码的输出结果并进行分析 代码如下:var tt = aa; function test(){ alert(...
JavaScript不支持函数重载,但TypeScript是否支持函数重载? 解题思路: 是的,TypeScript支持函数重载。但是它的实现很奇怪,当我们在TypeScript中执行函数重载时,我们只能实现一个带有多个签名的函数。 //带有字符串类型参数的函数 function add(a:string, b:string): string; //带有数字类型参数的函数 function add(a:number, b:number): number; //函数定义 function add(a: any, b:any): any { return a + b; ...
看了这个回答似乎也不是了解的很透彻啊 我是学Java的。今天在面试的时候面试官提及匿名类,我说Java8里面提供了Lamada式,在JS里也有闭包这个概念。面试官问什么是闭包?为什么要用闭包? 我说:用来控制访问啊。内部可以访问外部,但是外部不能访问内部。 面试官似乎不是很满意这样的回答。不知各位大神对这个问题有什么看法?回复内容:看了这个回答似乎也不是了解的很透彻啊 我是学Java的。今天在面试的时候面试官提及匿名类,我...
二、JavaScript部分1. JS 表单弹出对话框函数是?获得输入焦点函数是?弹出对话框函数:alert(), prompt(), confirm()获得输入焦点函数:focus()2. JS 的转向函数是?怎么引入一个外部 JS 文件?转向使用window.location.href= ""引入外部 js 使用3. 解释下面语句的意思:document.form["formName"].submit。(百度)获取 name 为 formName 的表单并将该表单数据提交到服务器。但这行代码是不能运行的,有两处错误,一是通过表单名称来...
Gxl网整理了javascript的10个面试题。快来测试一下你是否已经全部掌握JavaScript核心技能,在面试中你一定可以用得到。【推荐教程:JavaScript教程】1介绍js的基本数据类型Undefined、Null、Boolean、Number、String2s有哪些内置对象?数据封装类对象:Object、Array、Boolean、Number 和 String其他对象:Function、Arguments、Math、Date、RegExp、Error3this对象的理解this总是指向函数的直接调用者(而非间接调用者);如果有new关...
本篇文章给大家带来的内容是关于面试题中Javascript currying柯里化的详细理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。面试题:实现add(1)(2)(3) //结果 = 6,题的核心就是问的js的柯里化先说说什么是柯里化,看过许多关于柯里化的文章,始终搞不太清楚,例如:柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数...