jQuery面试相关

问题1: 作用域

  看一下下面的代码:


1

2

3

4

(function() {

  var a = b = 5;

})();

  console.log(b);

  结果会输出什么?

  答案:5

  这个问题考查的要点是两个不同的作用域,‘a‘被var声明成了一个局部变量,但是‘b‘实际上没有被定义,所以它是一个全局变量。

  这个问题还牵扯到另个一个比较重要的问题,就是strict mode,如果你选择了strict mode,上面的代码就会报Uncaught ReferenceError,因为b没有被定义,它可以帮你检查出代码的一些问题:


1

2

3

4

5

(function() {

  ‘use strict‘;

  var a = window.b = 5;

})();

  console.log(b);

 问题2: 创建“native”方法

  写一个重复打印字符串对象的方法,输入一个整数,这个整数代表重复打印的字数,比如:


1

console.log(‘hello‘.repeatify(3));

  这样会打印出hellohellohello。

  答案:

  其中一种实现方法是这样:


1

2

3

4

5

6

7

String.prototype.repeatify = String.prototype.repeatify || function(times) { 

 var str = ‘‘;  

 for (var i = 0; i < times; i++) {  

      str += this; 

 }  

 return str; 

};

  这个问题考查的是开发者对JavaScript继承和prototype属性的了解程度。

  Question 3: Hoisting

  下面这段代码的输出结果是什么?


1

2

3

4

5

6

7

8

function test() {

 console.log(a);

 console.log(foo());

 var a = 1;

 function foo() {

  return 2;

  }

 }


1

test();

答案:undefined和2。

  上面的代码和下面这段是等效的:


1

2

3

4

5

6

7

8

9

10

function test() {

 var a;

 function foo() {

   return 2;

 }

  console.log(a);

  console.log(foo());

  

  a = 1;

 }  


1

test();

  问题4: 在JavaScript中如何执行

  通过下面的代码给出结果,解释一下你的答案:


1

2

3

4

5

6

7

8

9

10

11

12

13

var fullname = ‘John Doe‘;

var obj = {

  fullname: ‘Colin Ihrig‘,

  prop: {

  fullname: ‘Aurelio De Rosa‘,

  getFullname: function() {

    return this.fullname;

  }

 }

};

  console.log(obj.prop.getFullname());

  var test = obj.prop.getFullname;

  console.log(test());

  答案:Aurelio De Rosa 和John Doe。

  问题5: call() 和 apply()

  解决前面的问题之后让最后一个console.log()输出Aurelio De Rosa.

  答案:

  这个问题在于call()还是apply()。 如果你不知道它们之间的区别,我建设你先读一读 What’s the difference between function.call and function.apply? 下面这行代码我使用了call(),但是这个情况下apply()也会产生同样的结果:


1

console.log(test.call(obj.prop));

时间: 2024-10-05 05:02:06

jQuery面试相关的相关文章

Jquery Validate 相关参数

Jquery Validate 相关参数 //定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, date: “请输入合法的日期”, dateISO: “请输入合法的日期 (ISO).”, number: “请输入合法的数字”, digits: “只能输入整数”, creditcard: “请输入合法的信用卡号”, equalTo: “请再次输入相同的值”

最常见的 20 个 jQuery 面试问题及答案

jQuery 面试问题和答案 JavaScript 是客户端脚本的标准语言,而 jQuery 使得编写 JavaScript 更加简单.你可以只用写几行的jQuery 代码就能实现更多的东西. 它是最长被用到的 JavaScript 库之一,并且现在已经很少有不用jQuery 而使用原生 JavaScript 的新项目了.这对于作为一个 Java web 开发者的你而言意味着你会在一场Java web开发面试中发现许多jQuery的面试问题. 早些时候,绝大部分都是 HTTP, HTML, CS

数据库面试相关

文章目录 MyISAM与INNODB的区别 MyISAM强调效率,执行速度比InnoDB快,但是不支持事务,不能在表损坏后修复数据. InnoDB不保存行号,就是在执行count操作时,需要扫描整个表,而MyISAM只要直接读出行号就行.注意:如果count与where组合使用两种引擎都是需要扫描整个表. MyISAM用的是表锁,InnoDB用的是行锁,其实并不一定,因为当不确定扫描对象时,还是会锁住整张表 MyISAM适用: 1. count操作多 2. 插入少,查询多 3. 不需要事务 In

jquery面试常见技术问题

面试常见技术问题 ------------           JQ           -----------1.jq常见选择器? ,号选择器,分组选择器.空格,祖父选择器.>大于号,父子选择器.+号选择器,紧接下一个兄弟选择器.~号,元素之后所有的siblings元素. :first,:last,:not,:first-child,:last-child,:animated.:checked 2. jQuery插件实现方式,分别介绍? jQuery.fn.extend 封装直接在$下面的方法

jQuery.ajax相关

jQuery.ajax(url,[settings]) 通过 HTTP 请求加载远程数据. jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象.大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性. 最简单的情况下,$.ajax()可以不带任何参数直接使用. 注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置. 回调函数 如果要处理$.ajax()

jQuery 面试问题和答案

1. jQuery 库中的 $() 是什么?(答案如下) $() 函数是 jQuery() 函数的别称,乍一看这很怪异,还使 jQuery 代码晦涩难懂.一旦你适应了,你会爱上它的简洁.$() 函数用于将任何对象包裹成 jQuery 对象,接着你就被允许调用定义在 jQuery 对象上的多个不同方法.你甚至可以将一个选择器字符串传入 $() 函数,它会返回一个包含所有匹配的 DOM 元素数组的 jQuery 对象.这个问题我已经见过好几次被提及,尽管它非常基础,它经常被用来区分一个开发人员是否了

jquery offset相关疑问记录

今天项目里用到了js控制滚动条,就上网查阅相关资料, 最后决定选用jquery的offset来实现, 结果在调试过程当中发现一个问题, 就是$(document).offset()报错undefined, 而用$(document.body).offset()就可以, 对于这个迷惑我又进行了一些调查, 比如document和body的区别, 查阅之后发现document是整个网页文档,body是document的一个子节点, 解决了这个疑问又来看为什么$(document).offset()报错

jQuery事件相关

一, 事件的概念 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件. 1, 事件流 事件流描述的是从页面中接收事件的顺序 1.DOM事件流 "DOM2级事件"规定的事件流包括三个阶段: ① 事件捕获阶段: ② 处于目标阶段: ③ 事件冒泡阶段 js中还有另外一种绑定事件的方式: 1.addEventListener addEventListener 是DOM2 级事件新增

MVC4 AspNet MVC下的Ajax / 使用JQuery做相关的Ajax请求

源码参考:链接:http://pan.baidu.com/s/1pKhHHMj  密码:mkr4 1:新建-->项目-->Web-->ASP.NET MVC 4 Web 应用程序.命名为:Mvc4JQueryAjaxDemo 2:新建控制器:在Controllers文件夹上 右键-->添加-->控制器,命名为:HomeController (HomeController .cs) 3:在控制器HomeController中新增Action: GetDate() 1 using