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

JavaScript函数在显示输出后仍然返回undefined

相关·内容

JavaScript函数 ④ ( 函数返回值 | 函数返回值语法 return 关键字 | 函数默认返回undefined )

一、JavaScript 函数返回值 1、函数返回值引入 JavaScript 函数 可以 实现某种特定的功能 , 执行完毕 , 可以返回一个 " 返回值 " ; 当 函数 被调用执行任务完毕时 ,..." 返回值 " 会被返回给调用者 ; 如果 函数 中没有明确 使用 return 关键字 返回 " 返回值 " , 那么函数会默认返回undefined 值 ; 2、函数返回值语法 JavaScript...中 , 函数 返回值是 通过 return 语句实现 , 函数体 中 使用 return 语句 指定函数返回的值 , 使用 return 语句 会立即终止函数的执行 , return 返回值 语法如下...: function functionName(parameters) { // 函数体 return expression; // 返回值 } JavaScript 中的返回值类型..., 不需要在 函数 声明中注明 返回值类型 ; 3、函数默认返回值 在下面的代码中 , 定义了 add 函数 , 并且该函数没有 显示使用 return 关键字 返回返回值 ; 此时 执行 add 函数

13910

JavaScript的变量

(b); //返回 1 示例2 JavaScript 中,可以重复声明同一个变量,也可以反复初始化变量的值。...,函数内部使用let定义,对函数外部无影响。...由于 JavaScript 预编译期已经对变量声明语句进行了预解析,所以第一行代码读取变量值时不会抛出异常,而是返回未初始化的值 undefined。...//声明并初始化局部变量 document.write(a); //显示 2 } f(); //调用函数 由于函数内部声明了一个同名局部变量 a,所以预编译期,JavaScript 使用该变量覆盖掉全局变量函数内部的影响...而在执行初期,局部变量 a 未赋值,所以函数内第 1 行代码读取局部变量 a 的值也就是 undefined 了。当执行到函数第 2 行代码时,为局部变量赋值 2,所以第 3 行中就显示为 2。

15310

37个JavaScript基本面试问题和解答(建议收藏)

但在内部函数中,这不再指向myObject。因此,this.foo在内部函数中是未定义的,而对局部变量self的引用仍然范围内并且可以在那里访问。...这是JavaScript中最常见的错误之一。严格模式下,尝试这样做会引发错误。 消除隐藏威胁。没有严格模式的情况下,对null或undefined的这个值的引用会自动强制到全局。...显示的代码示例不会显示值0,1,2,3和4,这可能是预期的;而是显示5,5,5,5。 这是因为循环内执行的每个函数将在整个循环完成执行,因此所有函数都会引用存储i中的最后一个值,即5。...JavaScript中,闭包被实现为“内部函数”;即在另一功能的主体内定义的功能。闭包的一个重要特征是内部函数仍然可以访问外部函数的变量。...fn里面,这个函数的作用域成为参数数组,并且记录参数[]的长度将返回2。 因此输出将如上所述。 28、考虑下面的代码。输出是什么,为什么?

2.9K10

你不知道的javaScript笔记(4)

a && typeof a === "object"); true null 是假值 是唯一一个用typeof 检测会返回 “object” 的基本类型 函数是对象的一个子类型,函数是可调用的对象,他有一个内部属性..."string" undefined 和 undeclared 变量已声明但未赋值的时候是undefined....;(不建议这样写) 特别大或者特别小的数字默认用指数格式显示,与toExponential()函数输出的结果相同。...特殊数字 不是数字的数字 数学运算的操作数不是数字类型,就无法返回一个有效的数字,这 种情况下返回的值就是NaN. 不是数字的数字,仍然是数字类型。 执行数学运算没有成功,这是失败返回的结果。...var b = -3 * 0; Object.is(b, -0);  // true Object.is(b,0); // false 值和引用 JavaScript 对值和引用的赋值/传递语法上没有区别

62250

开发人员面临的10个最常见的JavaScript问题

. */ } console.log(i); // 输出什么? 如果你猜测console.log()的调用会输出 undefined 或者抛出一个错误,那你就猜错了。答案是输出10。为什么呢?...但在JavaScript中,情况并非如此,即使for循环完成,变量i仍然作用域内,退出循环仍保留其最后的值。(顺便说一下,这种行为被称为变量提升(variable hoisting)。...,并返回一个内部函数,这样就会形成一个闭包,num 就会调用时传进来的的当时值,这样点击元素时,就能显示正确的序号。...' 当使用 delete 删除该属性时,就会返回一个 undefined,那么如果我们也想返回 default 要怎么做呢?...没有严格模式的情况下,对 null 或 undefined 的 this 值的引用会自动被强制到全局。严格模式下,引用null或undefined的this值会产生错误。

80410

43道JavaScript面试题

这意味着变量创建阶段会被提升(JavaScript会在创建变量创建阶段为其分配内存空间),默认值为undefined,直到我们实际执行到使用该变量的行。...没有值radius属性,返回undefined。 ---- 4. 下面代码的输出是什么? +true;!"...C: undefined D: ReferenceError 答案: A 这在JavaScript中是可能的,因为函数也是对象!(原始类型之外的所有东西都是对象) 函数是一种特殊类型的对象。...您不知情的情况下,值可以自动转换为另一种类型,称为隐式类型转换。 强制从一种类型转换为另一种类型。 在此示例中,JavaScript将数字1转换为字符串,以使函数有意义并返回值。...catch块之外,x仍然undefined,而y是2。 当我们想在catch块之外的console.log(x)时,它返回undefined,而y返回2。 ---- 39.

1.8K20

10个经常被问及又不太好回答的JS面试题

代码段的输出不是shoaib和20,结果为undefined和26,这是由于JavaScript中的吊装而导致的。...外部函数this和self引用obj,因此都可以正确访问该名称。但是内部部分不同。 在这里,this不参考obj。这就是为什么this.name是undefined。...第一和第四行控制台输出,没有任何延迟。 然后第三行,出现时间限制并执行日志。 最后,十秒钟的延迟结束,并显示数字2。...JavaScript中使用reverse时,该方法不仅会返回reversed数组。它还会颠倒数组本身的顺序。 reverse方法返回对数组本身的引用。...第一个控制台是未定义的,因为该方法是从person对象中提取的,因此不存在name属性的全局上下文中调用了identity函数

44130

【知乎热门回答】——JavaScript 的 this 原理是什么?

场景1:全局环境下的 this 这种情况相对简单直接,函数浏览器全局环境中被简单调用,非严格模式下this指向window; use strict指明严格模式的情况下就是undefined: function...虽然fn函数foo对象中作为方法被引用,但是赋值给fn1之后,fn1的执行仍然window的全局环境中。...} return o } const instance = new Foo() console.log(instance.user) 将会输出 undefined,此时 instance 是返回的空对象...结论:如果构造函数中显式返回一个值,且返回的是一个对象,那么 this 就指向这个返回的对象;如果返回的不是一个对象,那么 this 仍然指向实例。...JavaScript 的 this,需要反复学习,“死记硬背”才能慢慢体会。至少作为“资深工程师”的我,也不敢保证所有场景都能答对,理解不到位,再找到规范回炉了解一下怕什么呢?

56330

送你43道JavaScript面试题

没有值radius属性,返回undefined。 ---- 4. 下面代码的输出是什么? +true; !"...您不知情的情况下,值可以自动转换为另一种类型,称为隐式类型转换。 强制从一种类型转换为另一种类型。 在此示例中,JavaScript将数字1转换为字符串,以使函数有意义并返回值。...将callback推送到WebAPI,setTimeout函数本身(但不是回调!)从堆栈中弹出。 ? 现在,调用foo,并打印First。 ?....bind方法会返回函数的拷贝值,但带有绑定的上下文! 它不会立即执行。 ---- 34. 下面代码的输出是什么?...catch块之外,x仍然undefined,而y是2。 当我们想在catch块之外的console.log(x)时,它返回undefined,而y返回2。 ---- 39.

1.6K30

送你43道JavaScript面试题

没有值radius属性,返回undefined。 ---- 4. 下面代码的输出是什么? +true; !"...您不知情的情况下,值可以自动转换为另一种类型,称为隐式类型转换。 强制从一种类型转换为另一种类型。 在此示例中,JavaScript将数字1转换为字符串,以使函数有意义并返回值。...将callback推送到WebAPI,setTimeout函数本身(但不是回调!)从堆栈中弹出。 ? 现在,调用foo,并打印First。 ?....bind方法会返回函数的拷贝值,但带有绑定的上下文! 它不会立即执行。 ---- 34. 下面代码的输出是什么?...catch块之外,x仍然undefined,而y是2。 当我们想在catch块之外的console.log(x)时,它返回undefined,而y返回2。 ---- 39.

1.5K20

送你43道JavaScript面试题

没有值radius属性,返回undefined。 ---- 4. 下面代码的输出是什么? +true; !"...您不知情的情况下,值可以自动转换为另一种类型,称为隐式类型转换。 强制从一种类型转换为另一种类型。 在此示例中,JavaScript将数字1转换为字符串,以使函数有意义并返回值。...将callback推送到WebAPI,setTimeout函数本身(但不是回调!)从堆栈中弹出。 ? 现在,调用foo,并打印First。 ?....bind方法会返回函数的拷贝值,但带有绑定的上下文!它不会立即执行。 ---- 34. 下面代码的输出是什么?...catch块之外,x仍然undefined,而y是2。当我们想在catch块之外的console.log(x)时,它返回undefined,而y返回2。 ---- 39.

1.5K10

【JS】411- JS 进阶系列问题(47问)

window 中没有 radius 这个属性,因此返回 undefined。 ---- 4. 输出是什么? +true; !"...函数返回的值会成为这个属性的值,最终体现在转化的JSON字符串中(译者注:Chrome下,经过实验,如果所有属性均返回同一个值的时候有异常,会直接将返回值作为结果输出而不会输出JSON字符串),而如果返回值为...第一次调用时,累加器x为1,当前值“y”为2,打印出累加器和当前值:1和2。 例子中我们的回调函数没有返回任何值,只是打印累加器的值和当前值。如果函数没有返回值,则默认返回undefined。...在数组中添加字符串"apple",长度变为2,并将从addToList函数返回。 push方法修改原始数组,如果你想从函数返回数组而不是数组长度,那么应该在push item之后返回list。...;),但是JavaScript引擎仍然语句之后自动添加分号。

2.3K50

06JavaScript作用域与对象

var msg = 100; console.log(msg); //打印100 以上代码会先输出undefined然后输出100 。...约等于以下写法 var msg; console.log(msg); msg=100; console.log(msg); 所以变量提升也就是变量的声明被提升了 即使我们定义这个函数之前调用它,函数仍然可以工作...这是因为 JavaScript 中执行上下文的工作方式造成的。 JavaScript 仅提升声明,而不提升初始化。如果你先使用的变量,再声明并初始化它,变量的值将是 undefined。..."); } 创建对象 JavaScript中只有一个复杂数据类型那就是object,它既是一个函数也是一个构造函数。...result.getter()); // 100 result.setter(200); console.log(result.getter()); // 200 删除对象 删除对象使用delete运算符,删除再次访问则会显示

54531

JavaScript 进阶问题列表

 window 中没有 radius 这个属性,因此返回 undefined。 ---- 4. 输出是什么? 1 +true; 2 !"...本例中,JavaScript 将数字 1 转换为字符串,以便函数有意义并返回一个值。在数字类型(1)和字符串类型('2')相加时,该数字被视为字符串。...当函数没有返回任何值时,即默认返回undefined.对数组中的每一个元素来说,函数块都得到了这个返回值,所以结果中每一个元素都是undefined. ---- 51. 输出的是什么?...删除了原型的属性,该属性原型链上就不可用了。本例中,函数bark执行了delete Dog.prototype.bark不可用, 然而后面的代码还在调用它。...函数返回的值会成为这个属性的值,最终体现在转化的JSON字符串中(译者注:Chrome下,经过实验,如果所有属性均返回同一个值的时候有异常,会直接将返回值作为结果输出而不会输出JSON字符串),而如果返回值为

1.3K10

前端学习笔记之JavaScript

比较函数应该具有两个参数 a 和 b,其返回值如下: 若 a 小于 b,排序的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。 若 a 等于 b,则返回 0。...还有就是函数无明确的返回值时,返回的也是undefined。 null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。 还不明白,上图吧! ? ?...: 3 2 函数的全局变量和局部变量 局部变量: JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。...只要函数运行完毕,本地变量就会被删除。 全局变量: 函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。 变量生存周期: JavaScript变量的生命期从它们被声明的时间开始。...=22 ,所以第二个输出的是 2 3、同理第三个输出的还是22, 因为中间再没有改变age值的语句了 内置对象和方法 JavaScript中的所有事物都是对象:字符串、数字、数组、日期,等等。

91130

JavaWeb02-CSS,JS(Java真正的全栈开发)

Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。当函数无明确返回值时,返回的也是值 "undefined"....例如,下面的代码将引发错误:delete o.toString; void (函数时使用) void 运算符对任何值返回 undefined。...该运算符通常用于避免输出不应该输出的值,例如,从 HTML 的 元素调用 JavaScript 函数时。...要正确做到这一点,函数不能返回有效值,否则浏览器将清空页面,只显示函数的结果 需求:点击超链接,打开一个新的窗口 正确编写: <a href="<em>javascript</em>:void(window.open('...即使两个数都是 NaN,等号<em>仍然</em><em>返回</em> false,因为根据规则,NaN 不等于 NaN 如果一个运算数是 Boolean 值,<em>在</em>检查相等性之前,把它转换成数字值。

2.5K150

前端入门8-JavaScript语法之数据类型和变量声明正文-数据类型、变量

上图里也显示了, JavaScript 里,0.1 + 0.2 的运算结果是 0.30000000000000004。...因此,执行函数内第一行代码时,输出的变量 a 是函数内声明的局部变量,而不是函数外部的变量,这点行为跟 Java 不一样,需要注意一下。...window 的属性 a,所以函数内对 a 进行的操作结果,当函数执行结束,最后再次输出 a 才会是 2。...如果对象没有 toString() 方法,或者调用该方法返回的并不是一个原始值,那么调用对象的 valueOf() 方法,同样,如果调用后返回一个原始值,那么将原始值转为字符串,转换结束。...如果对象没有 valueOf() 方法,或者调用后返回的不是原始值,那么看对象是否具有 toSring() 方法,且调用它返回一个原始值,那么将原始值转为数字,转换结束。 否则,抛类型错误异常。

1.5K30
领券