首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

43道JavaScript面试题

,let也存在变量提升,但是它存在一个“暂时死区”,在变量未初始化或赋值前不允许访问。...静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。 由于freddie是一个子级对象,函数不会传递,所以在freddie实例上不存在freddie方法:抛出TypeError。...基础对象可以访问某些方法和属性,例如.toString。 这就是您可以使用内置JavaScript方法的原因! 所有这些方法都可以在原型上找到。...虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。 译者注:基础对象指原型链终点的对象。基础对象的原型是null。 ---- 14....译者注: 当使用基本类型的字符串调用giveLydiaPizza时,实际上发生了下面的过程: 创建一个String的包装类型实例 在实例上调用substring方法 销毁实例 ---- 29.

1.8K20

送你43道JavaScript面试题

,let也存在变量提升,但是它存在一个“暂时死区”,在变量未初始化或赋值前不允许访问。...静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。由于freddie是一个子级对象,函数不会传递,所以在freddie实例上不存在freddie方法:抛出TypeError。...基础对象可以访问某些方法和属性,例如.toString。这就是您可以使用内置JavaScript方法的原因!所有这些方法都可以在原型上找到。...虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。 译者注:基础对象指原型链终点的对象。基础对象的原型是null。 ---- 14....译者注: 当使用基本类型的字符串调用giveLydiaPizza时,实际上发生了下面的过程: 创建一个String的包装类型实例 在实例上调用substring方法 销毁实例 ---- 29.

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    送你43道JavaScript面试题

    ,let也存在变量提升,但是它存在一个“暂时死区”,在变量未初始化或赋值前不允许访问。...静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。 由于freddie是一个子级对象,函数不会传递,所以在freddie实例上不存在freddie方法:抛出TypeError。...基础对象可以访问某些方法和属性,例如.toString。 这就是您可以使用内置JavaScript方法的原因! 所有这些方法都可以在原型上找到。...虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。 译者注:基础对象指原型链终点的对象。基础对象的原型是null。 ---- 14....译者注: 当使用基本类型的字符串调用giveLydiaPizza时,实际上发生了下面的过程: 创建一个String的包装类型实例 在实例上调用substring方法 销毁实例 ---- 29.

    1.5K20

    送你43道JavaScript面试题

    ,let也存在变量提升,但是它存在一个“暂时死区”,在变量未初始化或赋值前不允许访问。...静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。 由于freddie是一个子级对象,函数不会传递,所以在freddie实例上不存在freddie方法:抛出TypeError。...基础对象可以访问某些方法和属性,例如.toString。 这就是您可以使用内置JavaScript方法的原因! 所有这些方法都可以在原型上找到。...虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。 译者注:基础对象指原型链终点的对象。基础对象的原型是null。 ---- 14....译者注: 当使用基本类型的字符串调用giveLydiaPizza时,实际上发生了下面的过程: 创建一个String的包装类型实例 在实例上调用substring方法 销毁实例 ---- 29.

    1.6K30

    JavaScript 进阶问题列表

    当使用 new 时,this 引用我们创建的空对象。当未使用 new 时,this 引用的是全局对象(global object)。...基本对象可以访问一些方法和属性,比如 .toString。这就是为什么你可以使用内置的 JavaScript 方法!所有这些方法在原型上都是可用的。...使用typeof操作符时, 操作值 x没有被定义:因为我们在x声明块的外部,无法调用它。这就意味着x未定义。...删除了原型的属性后,该属性在原型链上就不可用了。在本例中,函数bark在执行了delete Dog.prototype.bark后不可用, 然而后面的代码还在调用它。...替代者(replacer)可以是个函数或数组,用以控制哪些值如何被转换为字符串。 如果替代者(replacer)是个 数组 ,那么就只有包含在数组中的属性将会被转化为字符串。

    1.3K10

    分享30个你必须知道的JS基础知识

    undefined 是未指定特定值的变量或未显式返回值的函数的默认值,例如 console.log(1),以及对象中不存在的属性,JS 引擎为其分配未定义的值。...另一方面,在“捕获阶段”期间,事件从窗口开始在元素上触发,并向下传播到事件目标或 event.target。...当一个事件发生在 DOM 元素上时,它不仅仅发生在那个特定的元素上。 在捕获阶段,事件从窗口开始,一直向下传播到触发事件的元素。...27.如何创建没有原型的对象? 我们可以使用 Object.create 方法来创建一个没有原型的对象。...模板字符串是一种在 JavaScript 中创建字符串的新方法。 我们可以使用反引号 (`) 使字符串成为模板字符串。

    25530

    JavaScript最全编码规范(精)

    + this.lastName; // good var fullName = 'Bob ' + this.lastName; 超过80个字符的字符串应该使用字符串连接符进行跨行 注意:对长字符串过度使用连接符将会影响性能...'; 以编程方式创建字符串的时应该使用Array的join方法而不是通过连接符,尤其是在IE中:jsPerf. var items; var messages; var length; var i;...dragonball = 'z'; // good var items = getItems(); var goSportsTeam = true; var dragonball = 'z'; 最后声明未赋值的变量...在ES5中已经澄清(source) // bad var hero = { firstName: 'Kevin', lastName: 'Flynn', }; var heroes = [ 'Batman...function(key, val) { this[key] = val; }; Jedi.prototype.get = function(key) { return this[key]; }; 构造函数 在原型对象上定义方法

    1.5K10

    【译】ES10功能完全指南 - 还学的动吗?

    正则表达式捕获组 在正则表达式中捕获组只是在 ()括号中提取匹配。你可以从 /regex/.exec(string)和 string.match捕获组。 通常捕获组是在匹配规则中被创建的。...输出对象上创建 groups属性如: (?)。要创建一个新的组名,只需在括号内添加 (?)属性,分组(模式)匹配将成为附加到 match对象的 groups.name。...() 此更新修复了字符 U + D800到 U + DFFF的处理,有时可以进入 JSON字符串。...JSON格式的字符串绝对需要使用围绕属性名称的双引号。...一个稳定的排序算法是当两个具有相等键的对象在排序输出中以与未排序输入中出现的顺序相同的顺序出现时。 但现在已经不是这样了。

    1.4K20

    11 . Python3之异常,调试和测试

    有的错误是程序编写有问题造成的,比如本应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的....还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。...常用异常 异常名称 描述 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包...,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它 ValueError...(没有属性) UnboundLocalError 访问未初始化的本地变量 ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象 RuntimeError 一般的运行时错误

    1.4K40

    核心编程笔记之十-Py

    10.1 什么是异常 10.1.1 错误 错误时语法或是逻辑上的,语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译 当Python检测到一个错误时,解释器就会支出当前流已经无法继续执行下去...print以显示错误 为了获取更多关于异常的信息,我们可以调用该实例的__class__属性,它标示了实例是从什么类实例化而来,类对象也有属性 >>> diag TypeError('float() argument...__name__ 'TypeError' 我们用字符串化(string representation)的异常参数来替换单一的错误信息 >>> def safe_float(object): ...    ...用try-except语句捕获AssertionError异常: >>> try: ...     assert 1 == 0, 'One does not equal zero silly!'...,所有的异常都是内建的,所以它们在脚本启动前或在互交命令行提示符出现时已经是可用的了 表10.2 Python内建异常 (略) 10.9 创建异常: 例: -----------------------

    87820

    【Python 入门第十七讲】异常处理

    在本文中,我们将讨论如何在适当的示例的帮助下使用 try、except 和 finally 语句处理 Python 中的异常。Python 中的错误可以分为两种类型,语法错误和异常。...TypeError:当操作或函数应用于错误类型的对象(例如将字符串添加到整数)时,将引发此异常。NameError:当在当前作用域中找不到变量或函数名称时,将引发此异常。...AttributeError:当在对象上找不到属性或方法时,例如尝试访问类实例的不存在的属性,则会引发此异常。...x = 5y = "hello"z = x + y输出:尝试 catch 块来解决它:代码尝试将整数 (x) 和字符串 (y) 相加,这不是有效的操作,它将引发 x y TypeError 。...然后,它捕获异常,打印“异常”,并使用raise重新引发相同的NameError异常。这演示了如何在 Python 中引发和处理异常,从而允许自定义错误消息和进一步的异常传播。

    35111

    JavaScrip最容易犯的十大错误及其避免方法()

    反过来,这意味着ItemList将项目定义为未定义,并且您在控制台中收到错误 - “Uncaught TypeError:无法读取未定义的属性’map’”。 这很容易解决。...例如,如果您在CDN上托管JavaScript代码,任何未捕获的错误(冒泡到window.onerror处理程序的错误,而不是在try-catch中捕获)将被报告为“脚本错误”而不是包含有用的错误 信息...以下是有关如何在各种环境中设置此标头的一些示例: Apache 在将从中提供JavaScript文件的文件夹中,使用以下内容创建.htaccess文件: Header add Access-Control-Allow-Origin...Uncaught TypeError: Cannot set property 当我们尝试访问未定义的变量时,它总是返回undefined,我们无法获取或设置undefined的任何属性。...在这种情况下,应用程序将抛出“Uncaught TypeError无法设置未定义的属性”。 10.

    18910

    面向 JavaScript 开发人员的 ECMAScript 6 指南(4):标准库中的新对象和类型

    同样需要注意的是,如果有人想从外部向该对象添加新成员(元对象编程 的一个例子),字符串 firstName 的使用将与现有成员冲突,或者取代现有成员。...Person(目标)对象上的属性的请求。...如果您没有分配属性,返回的属性将是空的(或 undefined)。 最后一步是在目标和处理函数周围连接一个 Proxy 对象。在清单 16 中,我们将 Proxy 对象捕获回原始变量中。...如果被访问的属性不是函数,只需获取结果并返回它。如果该属性是函数,那么可以创建一个函数字面常量并返回该常量。返回的函数字面常量将调用原始函数。...从形式上讲,所有这些用法都属于面向方面编程的范畴。将它们相结合,就提供了思考如何捕获 JavaScript 中的关注点的全新可能性。

    64320

    一文看懂 PHP 8 的新特性

    如果要捕获所有的异常和错误,可以使用Throwable作为捕获类型。 参数列表中的尾部逗号 现在的 PHP,虽然可以调用函数时在尾部加逗号,但参数列表中仍然缺少对尾部逗号的支持。...异常取代了警告 尝试修改非对象的'%s'属性:Error异常取代了警告 尝试分配非对象的'%s'属性:Error异常取代了警告 从空值创建默认对象:Error异常取代了警告 试图获取非对象的'%s'属性...:警告取代了通知 未定义的属性:%s::$%s:警告取代了通知 由于下一个元素已被占用,无法将元素添加到数组:Error异常取代了警告 无法取消设置非数组变量中的偏移量:Error异常取代了警告 无法将标量值用作数组...异常取代了警告 isset 中的偏移量类型非法或为空:TypeError异常取代了警告 unset 中的偏移量类型非法:TypeError异常取代了警告 数组到字符串的转换:警告取代了通知 Resource...ID#%d 用作偏移量,转换为整数(%d):警告取代了通知 发生字符串偏移量转换:警告取代了通知 未初始化的字符串偏移量:%d:警告取代了通知 无法将空字符串分配给字符串偏移量:Error异常取代了警告

    2.6K10

    JS学习笔记 (三) 对象进阶

    该方法可以在创建对象时指定原型或若干属性的对象。如: let obj1 = Object.create({ x: 1, y: 2 }); // obj1继承了属性x和y。...three); // Null传导运算符 输出结果: TypeError: Cannot read property ‘three’ of undefined 在以下场景下给对象o设置属性p会失败:...若要删除继承属性必须从定义这个属性的原型对象上删除它,而且这会影响到所有继承自这个原型的对象。 delete不能删除那些可配置性为false的属性。...1.5.1 原型属性 原型属性是在实例对象创建之初就设置好的。...JSON.stringify()只能序列化对象可枚举的自有属性 对于一个不能序列化的属性来说,在序列化后的输出字符串中会将这个属性省略掉 1.6 Object 构造函数的方法 Object构造函数提供了如下方法

    49540

    JavaScript错误处理完全指南

    ; 创建后,错误对象将显示三个属性: message:包含错误消息的字符串 name:错误的类型 stack:函数执行的堆栈跟踪 例如,如果我们创建一个新的 TypeError 对象,带有适当的消息,该...在代码中,你将主要使用 Error 和 TypeError 这两种最常见的类型来创建自己的错误对象。...如果这个异常 未捕获,即程序员没有采取任何措施来捕获它,则程序将崩溃。 在何时何地捕获代码中的异常取决于具体的用例。 例如,你可能想在堆栈中传播一个异常,以使程序完全崩溃。...与 setTimeout 一样,异步代码路径抛出的异常 无法从外部捕获,这将使程序崩溃。 在下一部分中,我们将了解如何使用 Promises 和 async/await 简化异步代码的错误处理。...如果我们失败了,或者决定不在这里捕获它,那么 异常就可以在堆栈中冒泡了。这本身并不坏,但是不同的环境对未捕获的拒绝的反应是不同的。

    5K20

    现代JavaScript—ES6+中的Imports,Exports,Let,Const和Promise

    在if块外,number无法被访问,因此会出现引用错误。 但是,如果变量number在if块外已经声明,将会出现下面的结果。...调用reject函数会抛出一个错误,但是我们没有添加用于捕获错误的代码。 需要调用catch方法指定的回调函数来捕获并处理这个错误。...如上图所示,我们在第一个then方法中输出字符串,并将接收的参数result(sum)返回给下一个result。 在下一个then方法中,输出字符串,并输出上一个then方法传递给它的result。...如何在JavaScript中延迟promise的执行 很多时候,我们不希望立即创建promise,而是希望在某个操作完成后再创建。...如何在JavaScript中使用箭头函数 上述示例代码中,我们使用常规的ES5语法创建了promise。

    3.3K10
    领券