热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【错题记录】JavaScript专项练习(2020.12.05)

1.下面这段JS程序的执行结果是:vara[1,2,3];varba.slice();b.push(4);console.log(a)解析:这里是输出a&#x

1.下面这段JS程序的执行结果是:

var a = [1,2,3];
var b = a.slice();
b.push(4);
console.log(a)

解析:这里是输出a,答案是[1,2,3]
在这里插入图片描述
slice()方法返回新数组,不会改变原数组。它的参数有两个,第一个参数start,缺省为0,第二个参数end,缺省为末尾




2.以上代码,在浏览器中执行的结果是

var A = {n:4399
};
var B = function() {this.n = 9999
};
var C = function() {var n = 8888
};
B.prototype = A;
C.prototype = A;
var b = new B();
var c = new C();
A.n++;
console.log(b.n);
console.log(c.n);

解析:
在这里插入图片描述
如果不了解new操作符的原理解析,这里先了解下👉new操作符的原理解析
如果不了解原型/原型链/this指向,可以在下面博客了解下


this
如何理解JS原型
原型链


具体解析请看原题




3.单例模式


单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。



单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例





4.在大数据量场景下,以下哪种js中字符串连接方式较为高效?

1.a += b
2.a = a+b
3. Array.join()
4. Array.push()

解析:答案3


以上效率问题仅存在于低版本浏览器ie7-及以下,现在浏览器基本解决此问题:


+的处理机制是:新建一个临时字符串,将新字符串赋值为a+b,然后返回这个临时字符串并同时销毁原始字符串,所以字符串连接效率较低。

Array.join() 不会新建临时字符串效率更高




5.this对象的理解

3.在事件中,this总是指向触发这个事件的对象

在事件中,this指向触发这个事件的对象, 特殊的是,IE中的attachEvent中的this总是指向全局对象Window

所以这句话错误👆


6.下面那些执行结果为true()

a. 'foo' == new function(){ return String('foo'); };
b. 'foo' == new function(){ return new String('foo'); };
c. [] == 0
d. ![]
e. !0

解析:答案 b c e
在这里插入图片描述


构造函数始终会返回一个对象:
情况1:你写了return {a:xxx} 他就会返回你定义的这个对象
情况2:你没写return或者你return a 一个基本类型 这两种情况(没写或者return基本类型)它都会默认返回一个对象 a选项返回了一个String
所以构造函数会默认返回一个空对象 b选项返回一个String对象(因为有new 所以是字符串对象)所以构造函数就返回了这个String对象


在这里插入图片描述
在 JS 中,只有 0,-0,NaN,"",null,undefined 这六个值转布尔值时,结果为 false,至于[]转换为0,是当[]置于“=="运算符两侧的时候,将会进行隐式转换


推荐阅读
  • 本文详细介绍了 TypeScript 中函数的多种定义方式,包括命名函数、匿名函数、类型别名和接口。同时,还探讨了函数参数的可选性、默认值、剩余参数以及函数重载等高级特性。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 重要知识点有:函数参数默许值、盈余参数、扩大运算符、new.target属性、块级函数、箭头函数以及尾挪用优化《深切明白ES6》笔记目次函数的默许参数在ES5中,我们给函数传参数, ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本地存储组件实现对IE低版本浏览器的兼容性支持 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 本文详细解析了一种实用的函数,用于从URL中提取查询参数。该函数通过处理URL中的搜索部分,能够高效地获取并解析出所需的参数值,适用于各种Web开发场景。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了在编写jQuery插件时需要注意的关键要点,包括模块化支持、命名规范和性能优化等内容,旨在帮助开发者提高插件的质量和可维护性。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
author-avatar
雨霖铃111130
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有