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

我是学习Javascript的新手。想知道为什么条件在没有链接到构造函数中的字段时会起作用

条件在没有链接到构造函数中的字段时起作用是因为在JavaScript中,条件语句是根据表达式的值来决定执行的代码块。当条件语句中的表达式为真时,执行相应的代码块;当表达式为假时,跳过相应的代码块。

在构造函数中,字段是用来存储对象的属性值的变量。当我们创建一个对象实例时,构造函数会被调用,并且可以通过构造函数中的参数来初始化对象的字段。如果条件语句中使用的字段没有被链接到构造函数中,那么这个字段的值将是undefined,而undefined在条件判断中被视为假值。

举个例子,假设有以下的构造函数和条件语句:

代码语言:txt
复制
function Person(name, age) {
  this.name = name;
  // age字段没有被链接到构造函数中
}

var person = new Person("John", 25);

if (person.age) {
  console.log("Age is defined");
} else {
  console.log("Age is not defined");
}

在上面的例子中,由于age字段没有被链接到构造函数中,它的值为undefined。因此,条件语句中的表达式person.age的值为假,所以会执行else代码块,输出"Age is not defined"。

在这种情况下,如果我们希望条件语句中的字段起作用,我们需要在构造函数中将字段链接起来,例如:

代码语言:txt
复制
function Person(name, age) {
  this.name = name;
  this.age = age;
}

var person = new Person("John", 25);

if (person.age) {
  console.log("Age is defined");
} else {
  console.log("Age is not defined");
}

在这个例子中,age字段被链接到构造函数中,并且通过构造函数的参数进行初始化。因此,条件语句中的表达式person.age的值为真,所以会执行if代码块,输出"Age is defined"。

总结起来,条件在没有链接到构造函数中的字段时会起作用是因为在JavaScript中,条件语句是根据表达式的值来决定执行的代码块。如果字段没有被链接到构造函数中,它的值将是undefined,被视为假值。如果希望条件语句中的字段起作用,需要在构造函数中将字段链接起来。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

TypeScript 看见未来 JavaScript

没有类,只有对象,要实现所谓“类式操作”(classical operations),如封装、多态等,要通过若干基础设施,如原型、构造函数等来完成。...这些对于非常熟悉JavaScript程序员来说,也许都是可以完成任务,但对于新手来说就困难重重了。并且,即使高手,一段时间不写相关代码也很容易遗忘和出错。...所以说TypeScriptJavaScript未来,更好JavaScript 为什么学习 TypeScript ,实际上 JavaScript 已经够用了,而且像我没学过 TypeScript...、 TypeScript 微软开发和控制开源项目,应用 Anguar 2 + Ionic 2 + 框架开发系统时使用就是 TypeScript,但我一直把 TypeScript 当作 JavaScript...来用,甚至照猫画虎,所以我想正儿八经学习下 TypeScript,弄明白糊里糊涂使用东西,这篇 Chat分享算是一个学习笔记,如果你想和我一样,想知道以下内容,请来 Chat: 为什么学习

76330

译文:开发人员面临 10个最常见JavaScript 问题

事实上,对于任何有经验软件开发人员来说,将基本JavaScript功能构建到网页中都是一项相当简单任务,即使他们JavaScript新手。...因此,要传递给setTimeout()匿名函数window对象上下文中定义,该对象没有clearBoard()方法。...而且,仅在实际上从未使用过replaceThing功能主体和函数引用。 因此,我们再次想知道为什么这里存在内存泄漏。 为了理解发生了什么,我们需要更好地了解JavaScript内部工作原理。...因此,如果在没有名称情况下调用构造函数,则名称将默认为default。...写在最后 与任何技术一样,你越了解JavaScript为什么以及如何工作和不起作用,你代码就越可靠,你就越能有效地利用语言真正力量。

1.2K20

字节跳动最爱考前端面试题:JavaScript 基础

JavaScript ,我们将作用域定义为一套规则,这套规则用来管理引擎如何在当前作用域以及嵌套子作用域中根据标识符名称进行变量(变量名或者函数名)查找 什么作用域?...而且,对象属性只有上一层或者说最后一层调用位置起作用 function foo() { console.log(this.a); } var obj = { a: 2, foo: foo...[[Prototype]] 最终都会指向内置 Object.prototype,其包含了 JavaScript 许多通用功能 为什么能创建 “类”,借助一种特殊属性:所有的函数默认都会拥有一个名为...= Person 发生 new 构造函数调用时,会将创建新对象 [[Prototype]] 链接到 Person.prototype 指向对象,这个机制就被称为原型继承 方法定义原型上,...,如果没有找到,就去构造这个实例对象构造函数 prototype 所指向对象上去查找,如果还找不到,就从这个 prototype 对象所指向构造函数 prototype 原型对象上去查找 什么原型

1.4K20

JavaScript 知识点整理

原型 最后,我们将需要共享方法和属性定义原型上,把专属于实例方法和属性放到构造函数。到这儿,我们就通过构造函数+原型方式定义了一个类。...这并没有什么神奇函数定义子函数就可以创建闭包,而子函数可以访问父函数作用域。 我们通常是因为被闭包坑了,才会被闭包吓到,尤其面试题里一堆闭包。...// 当我们回头执行subFuncs函数时候,我们得到i其实一直都是10,为什么?...✦ JavaScript基础主要包括:5基本数据类型、1种复杂数据类型、操作符、控制语句、函数等。 ✦ 了解基本语法后,你还需要学习学习JavaScript变量、作用域、作用域。...记住递归最佳实践、闭包定义及缺陷、闭包适用场景。 JavaScript作为一门动态语言,和其他语言有较大差异,这也造成很多人学习JavaScript时会觉得难学。

71950

JavaScript 知识点整理

原型 最后,我们将需要共享方法和属性定义原型上,把专属于实例方法和属性放到构造函数。到这儿,我们就通过构造函数+原型方式定义了一个类。...这并没有什么神奇函数定义子函数就可以创建闭包,而子函数可以访问父函数作用域。 我们通常是因为被闭包坑了,才会被闭包吓到,尤其面试题里一堆闭包。...// 当我们回头执行subFuncs函数时候,我们得到i其实一直都是10,为什么?...✦ JavaScript基础主要包括:5基本数据类型、1种复杂数据类型、操作符、控制语句、函数等。 ✦ 了解基本语法后,你还需要学习学习JavaScript变量、作用域、作用域。...记住递归最佳实践、闭包定义及缺陷、闭包适用场景。 JavaScript作为一门动态语言,和其他语言有较大差异,这也造成很多人学习JavaScript时会觉得难学。

82150

JavaScript 知识点梳理 | 从基础语法到高级用法

使用构造函数创建自定义类型,然后使用new操作符来创建类实例,但是构造函数方法和属性每个示例上都存在,不能共享,于是我们引入原型来实现方法和属性共享。 ?...原型 最后,我们将需要共享方法和属性定义原型上,把专属于实例方法和属性放到构造函数。到这儿,我们就通过构造函数+原型方式定义了一个类。...这并没有什么神奇函数定义子函数就可以创建闭包,而子函数可以访问父函数作用域。 我们通常是因为被闭包坑了,才会被闭包吓到,尤其面试题里一堆闭包。...JavaScript基础主要包括:5基本数据类型、1种复杂数据类型、操作符、控制语句、函数等。 了解基本语法后,你还需要学习学习JavaScript变量、作用域、作用域。...JavaScript作为一门动态语言,和其他语言有较大差异,这也造成很多人学习JavaScript时会觉得难学。

1.1K50

面向 JavaScript 开发人员 ECMAScript 6 指南(3):JavaScript

第 2 部分 ,您学习了 ECMAScript 6 函数增强,包括新箭头和生成器函数。将函数元素集成到 JavaScript 代码中意味着要重新考虑某些因素,但变化没有您想象那么大。...本期文章,将学习如何在 JavaScript 定义类和属性,以及如何使用原型JavaScript 程序引入继承。...您可能认为,原型类似于 Java 或 C++/C# 继承,但两种技术之间只有一个真正相似点:当 JavaScript 需要解析一个没有直接包含在对象上符号时,它会沿原型查找可能匹配值。...此外,从清单 11 Author 构造函数可以看到,关键字 super 显然会在原型向上调用给定方法原型版本。本例,调用了构造函数,让 Person 构造函数有机会执行发挥自己作用。...因此,尽管没有显式语法来定义静态字段,但可以直接在类型对象上引用字段。在上面的示例,Person 构造函数首先检查 Person 是否已有一个 population 字段

65840

JavaScript继承背后场景-prototype,__proto__, ]

通过构造函数来创建对象 除了通过指定模式创建对象之外,构造函数还可以执行另一个有用操作 - 它会自动为新创建对象设置原型对象。此原型对象存储构造函数原型对象属性。...JavaScript经典继承图 这也是通过构造函数来创建对象,但是在这一系列对象和实例之间我们焦点放在原型上。原型对象其实也是普通对象,也有属于它们自己属性。...如果原型具有对其原型非空引用,依此类推,则称为原型。 以下JavaScript经典继承图表。构造函数Foo只是虚构类类名。foo对象是Foo一个实例。 ?...proto and prototype关系: JavaScript经典继承就像这样:一个构造函数只是一个函数持有一个原型引用,每当调用foo = new Foo()时,我会让foo ._...使用new操作符创建对象时用于构建__proto__对象,实例化对象上(或其他对象)不可使用,仅在构造函数上使用,因为它是从Funtion和Object上复制

62110

新手学习 react 迷惑点(一)

,还反人类啥,所以我打算写两篇文章来讲新手学习 React 时候容易迷惑点写出来,如果你还以其他对于学习 React 很迷惑点,可以留言区里给我留言。...为什么要调用 super 其实这不是 React 限制,这是 JavaScript 限制,构造函数里如果要调用 this,那么提前就要调用 super, React 里,我们常常会在构造函数里初始化...那还是不行,不然官网也不会建议你调用 props 了,虽然 React 会在构造函数运行之后,为 this.props 赋值,但在 super() 调用之后与构造函数结束之前, this.props...undefined   }   // ... } 要是构造函数调用了某个访问 props 方法,那这个 bug 就更难定位了。...后记 这是这个系列第一篇,这些问题也是一个「React交流群」里大家提出来一些他们刚学 react 时候容易迷惑点,下一篇不出意外就是解答以下迷惑点,如果有其他问题想知道,欢迎评论区留言

68130

ES2020 系列:可选 ?. 为啥出现,我们能用它来干啥?

我们大多数用户地址都存储 user.address ,街道地址存储 user.address.street ,但有些用户没有提供这些信息。...但是很多实际场景,我们更希望得到 undefined(表示没有 street 属性)而不是一个错误。 ……还有另一个例子。...可能最先想到方案访问该值属性之前,使用 if 或条件运算符 ? 对该值进行检查,像这样: let user = {}; alert(user.address ?...就像你所看到代码我们仍然重复写了好几遍对象属性名。例如在上面的代码,user.address 被重复写了三遍。 这就是为什么可选 ?. 被加入到了 JavaScript 这门编程语言中。...name = "John"; // Error,不起作用 // 因为它在计算 undefined = "John" 这还不是那么智能。 总结 可选 ?. 语法有三种形式: obj?.

92640

仅用50 行 JavaScript 代码从头构建区块,向你介绍区块工作原理

今天文章将通过仅使用 50 行 JavaScript 代码从头构建区块,向您展示区块工作原理。 我们开始之前,想指出,如果您了解一些基本编程知识,这篇文章会更容易理解。...1、创建块类 让我们一个空 index.js 文件创建一个名为“Block”类。 此类构造函数接受 2 个参数。第一个前一个区块哈希值,第二个当前区块数据。...构造函数内部,我们使用构造函数参数初始化块数据。我们将 timeStamp 设置为当前时间,将 proofOfWork 设置为 0。 还记得说过我们需要计算哈希值吗?...因为散列只一个方向上起作用,所以很容易找到给定输入散列输出,但很难从散列输出预测输入。 我们来看一下calculateHash函数。...genesis block 它基本上第一个块。因此,我们可以传递“0”作为前一个哈希值,因为没有前一个块。 接下来,我们将实现 addBlock 函数,该函数将一个新块添加到

1.1K20

【前端词典】继承

这些方法都以事先内置 JavaScript ,直接调用即可。上面标红了两个特别的属性 constructor 和 __proto__。这两个属性接下来都会讲。...听到有人在问为什么? 因为这个 __proto__.constructor 指向 Object。 我们知道:一个函数原型对象构造函数这个函数本身。...看到一个解释这样: 其他所有的构造函数都可以通过原型找到 Function.prototype ,并且 functionFunction() 本质也是一个函数,为了不产生混乱就将 functionFunction...小结 基于构造函数和原型 通过 hasOwnProperty() 方法来确定自身属性与其原型属性 通过 isPrototypeOf() 方法来确定原型和实例关系 实例可以修改原型引用类型值...小结 基于构造函数没有使用原型 子对象和父对象公用一个原型对象 三、借用构造函数法 此方法可以解决原型引用类型值被修改问题 function staff(){ this.test = [1,2,3

58770

字节前端高频面试题

[Prototype] 最终都会指向内置 Object.prototype,其包含了 JavaScript 许多通用功能为什么能创建 “类”,借助一种特殊属性:所有的函数默认都会拥有一个名为...= Person发生 new 构造函数调用时,会将创建新对象 [Prototype] 链接到 Person.prototype 指向对象,这个机制就被称为原型继承方法定义原型上,属性定义构造函数上首先要说一下...,也就是通过 [Prototype] 链接到了这个原型对象然后说一下 JS 属性查找:当我们试图引用实例对象某个属性时,按照这样方式去查找,首先查找实例对象上是否有这个属性,如果没有找到,就去构造这个实例对象构造函数...] 属性链接,所以被称为原型什么原型继承,类比类继承:当有两个构造函数 A 和 B,将一个构造函数 A 原型对象,通过其 [Prototype] 属性链接到另外一个 B 构造函数原型对象时...箭头函数访问arguments实际上获得它外层函数arguments值。

31110

ES2020 骚操作:可选 ?.

我们大多数用户地址都存储 user.address ,街道地址存储 user.address.street ,但有些用户没有提供这些信息。...但是很多实际场景,我们更希望得到 undefined(表示没有 street 属性)而不是一个错误。 ……还有另一个例子。...可能最先想到方案访问该值属性之前,使用 if 或条件运算符 ? 对该值进行检查,像这样: let user = {}; alert(user.address ?...就像你所看到代码我们仍然重复写了好几遍对象属性名。例如在上面的代码,user.address 被重复写了三遍。 这就是为什么可选 ?. 被加入到了 JavaScript 这门编程语言中。...name = "John"; // Error,不起作用 // 因为它在计算 undefined = "John" 这还不是那么智能。 总结 可选 ?. 语法有三种形式: obj?.

73810

JavaScript 模式》读书笔记(5)— 对象创建模式4

七、对象常量 JavaScript没有常量概念,虽然许多现代编程环境可能为您提供了用以创建常量const语句。...模式一个缺点在于以这种方式编写代码更加难以调试。或许直到某个特定代码行中发生错误,但是在此行实际执行了太多步骤。当多个方法其中一个静默失效时,无法直到哪一个方法失效了。   ...现在回想起来,他承认使JavaScript类似类思想并不是值得推荐方案,但是它仍然一种令人关注模式,有可能在一些应用程序遇到这种模式。   使用构造函数看起来就像是使用Java类。...这也就是为什么可服用方法应该添加到构造函数prototype属性原因。   向编程语言中添加便利功能通常也称之为语法糖。...如果没有,那么继续添加函数,并将其作为implementation参数传递给构造函数原型。在这种情况下,this指的是构造函数,其原型得到了增强。

27440

美团前端春招三面面经

然后开始问问题 盒模型,bfc float,position,清除浮动 请解释一下CSS3Flexbox(弹性盒布局模型),以及适用场景? JavaScript原型,原型 ? 有什么特点?...Javascript如何实现继承? 构造函数继承,非构造函数继承 Javascript作用域? 什么闭包(closure),为什么要用它? .call() 和 .apply() 含义和区别?...jsonp cors ,jsonp原理 11.promise原理 一面结束,问还有什么要问他,就问了一下有什么不足需要加强地方,面试官说基础挺好这里没有什么了,你可以请教一下后面的面试官,然后...,面试官说去帮忙看下还有没有人在,让等一下。...讲到了自己学习react经历,如何快速学习并投入公司项目当中 请求头包含哪些部分 服务端渲染?

1.3K80

7个 Javascript 面试题及回答策略

由于 JavaScript 通常用于用户界面,因此同时运行多个操作能力可以带来更好用户体验。 你是否 JavaScript 中使用过类继承和原型继承?为什么?...更喜欢原型继承,因为它更简单、更灵活。 在你看来,类继承是否正确选择?如果是的话,什么情况下?如果不是,为什么?...只有极少数情况下,它可能被用到。 你如何定义函数式编程?函数式编程 JavaScript 作用是什么? 解析: 函数式编程目前 JavaScript 使用基本原则。...面试官想知道些什么: 能够阐明任何一种方法优缺点 提及共享资源导致问题 了解函数式编程如何简化应用程序 参考答案: 虽然主要使用面向对象编程方式,但是更希望用函数式编程开发。...双向数据绑定是用户界面与模型数据动态链接状态。如果用户界面字段发生了变化,模型也会发生变化,比如 Angular。

44730

全网最全,最详细,最友好 Typescript 新手教程

写这篇指南之前,并不确定,但每天都看到很多初学者对TypeScript感兴趣。如果你决定这样做,要意识到,在你早期时候,同时学习TypeScript和JavaScript很难。...现在我们要记住,TypeScript一种特殊JavaScript,但在浏览器运行之前,它需要一个“转换器”。 TypeScript新手教程:为什么TypeScript?...想知道是否有一种方法可以IDE检查这个函数,而不需要运行代码或使用Jest测试它。这可能吗?...这是有意义,至少TypeScript这样:一般JavaScript对象没有任何名为“url”属性。对来说,这是TypeScript真正开始发光地方。...总之,跳过了TypeScript另一个有用特性:函数返回类型。 要理解为返回值添加类型注释为什么很方便,请想象一下正在摆弄您奇特函数

6K40

【前端词典】必备知识-原型与原型

每个类包含数据说明和一组操作数据或传递消息函数。类实例称为对象。 类: 描述了一种代码组织结构形式,一种软件对真实世界问题领域建模方法。...这些方法都以事先内置 JavaScript ,直接调用即可。上面标红了两个特别的属性 constructor 和 __proto__。这两个属性接下来都会讲。...听到有人在问为什么? 因为这个 __proto__.constructor 指向 Object。 我们知道:一个函数原型对象构造函数这个函数本身。...3. new 操作符 当我们使用 new 操作符时,生成实例对象拥有了 __proto__属性。即在 new 过程,新对象被添加了 __proto__ 并且链接到构造函数原型上。...看到一个解释这样: 其他所有的构造函数都可以通过原型找到 Function.prototype ,并且 functionFunction() 本质也是一个函数,为了不产生混乱就将 functionFunction

50020

JavaScript 模式》读书笔记(5)— 对象创建模式4

七、对象常量 JavaScript没有常量概念,虽然许多现代编程环境可能为您提供了用以创建常量const语句。...模式一个缺点在于以这种方式编写代码更加难以调试。或许直到某个特定代码行中发生错误,但是在此行实际执行了太多步骤。当多个方法其中一个静默失效时,无法直到哪一个方法失效了。   ...现在回想起来,他承认使JavaScript类似类思想并不是值得推荐方案,但是它仍然一种令人关注模式,有可能在一些应用程序遇到这种模式。   使用构造函数看起来就像是使用Java类。...这也就是为什么可服用方法应该添加到构造函数prototype属性原因。   向编程语言中添加便利功能通常也称之为语法糖。...如果没有,那么继续添加函数,并将其作为implementation参数传递给构造函数原型。在这种情况下,this指的是构造函数,其原型得到了增强。

38510
领券