首页 > 编程语言 >JavaScript核心语法(2)

JavaScript核心语法(2)

时间:2024-12-05 21:00:48浏览次数:7  
标签:语句 obj name 核心 JavaScript 语法 person var

这篇文章属于是一点大杂烩。,因为我整理了一下JavaScript的一些语法,我发现有几个知识点是很散的,我原本想每个知识点都整理成一篇文章,但是后来发现没多少可写的,所以我就打算将这些大杂烩的知识点放到这里来。

语句和表达式

JavaScript 程序是一行一行执行的。一般情况下,每一行就是一个语句。

语句(statement)是为了完成某种任务而进行的操作,比如下面就是一行赋值语句。

var a = 1 + 3;

这条语句先用var命令,声明了变量a,然后将1 + 3的运算结果赋值给变量a。

1 + 3叫做表达式(expression)。语句和表达式的区别在于,语句主要为了进行某种操作,一般情况下不需要返回值;表达式则是为了得到返回值,一定会返回一个值。凡是 JavaScript 语言中预期为值的地方,都可以使用表达式。比如,赋值语句的等号右边,预期是一个值,因此可以放置各种表达式。
 

区块

JavaScript 使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。

在 JavaScript 语言中,区块往往用来构成其他更复杂的语法结构,比如for、if、while、function等。

标识符

标识符指的是用来识别各种值的合法名称。最常见的标识符就是变量名,以及后面要提到的函数名。

this关键字

介绍

this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。反正我在看代码的时候,基本上都是有this关键字的,如果不懂this关键字,对于很多变量的值你都不知道,那如果你连变量的值你都不知道,那肯定是不行的,基本你就看不懂代码了。

this关键字可以用在很多地方,但不管是什么地方,this都有一个共同点:它总是返回一个对象。

简单说,this就是属性或方法“当前”所在的对象。

this.property

上面代码中,this就代表property属性当前所在的对象。

下面是一个实际的例子。

var person = {
  name: '张三',
  describe: function () {
    return '姓名:'+ this.name;
  }
};
person.describe()
// "姓名:张三"

上面代码中,this.name表示name属性所在的那个对象。由于this.name是在describe方法中调用,而describe方法所在的当前对象是person,因此this指向person,this.name就是person.name。

本质

由于函数是一个单独的值,所以它可以在不同的环境(上下文)执行。

现在问题就来了,由于函数可以在不同的运行环境执行,所以需要有一种机制,能够在函数体内部获得当前的运行环境(context)。所以,this就出现了,它的设计目的就是在函数体内部,指代函数当前的运行环境。

var f = function () {
  console.log(this.x);
}
var x = 1;
var obj = {
  f: f,
  x: 2,
};
// 单独执行
f() // 1
// obj 环境执行
obj.f() // 2


上面代码中,函数f在全局环境执行,this.x指向全局环境的x;在obj环境执行,this.x指向obj.x。

标签:语句,obj,name,核心,JavaScript,语法,person,var
From: https://blog.csdn.net/qq_54432917/article/details/144215627

相关文章

  • HTML网页规划与设计【冬季奥林匹克运动会——带论文报告5200字】HTML+CSS+JavaScript
    ......
  • 【计算机毕业设计】基于HTML+CSS+JavaScript大学生心理咨询网设计毕业论文源码
    ......
  • 【语法】一般过去时
    一般过去时(SimplePastTense)是英语中用来表示过去某个时间里已经发生并结束的动作或状态的时态。以下是对一般过去时的详细解释:一、定义与特点一般过去时主要描述过去特定时间的动作、事件或情况,与当前没有直接联系。通过使用一般过去时,我们可以清楚地表达在过去发生的事情,不论......
  • 【语法】现在完成进行时
    现在完成进行时(PresentPerfectContinuousTense)是英语中的一种时态,它强调动作从过去某一时刻开始一直持续到现在,并可能继续下去。以下是对现在完成进行时的详细解释:一、构成现在完成进行时的基本构成是“主语+have/hasbeen+ 现在分词+其他成分”。其中,“have/hasbeen......
  • Day04学习:Java基础语法
    JAVA基础语法注释//单行注释/*多行注释多行注释多行注释*/标识符Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。所有标识符应该以字母,$,下划线(_)开头首字符之后可以是字母,$,下划线(_)或者数字的任何字符组合不以关键字作变量名或方法名区分大小......
  • 【语法】have
    在英语中,“have”是一个多功能的动词,其用法取决于时态、人称以及具体的语境。以下是一些关于“have”的常见用法:一、一般现在时第一人称和第二人称单数及复数:当主语是第一人称(I,we)或第二人称(you)时,无论单数还是复数,都使用“have”。示例:I have abook.(我有一本书。)示例:We......
  • 解锁 JavaScript 魔力:不容错过的代码小妙招(一)
    JavaScript开发小技巧:编程魔法大揭秘......
  • 解锁 JavaScript 魔力:不容错过的代码小妙招(二)
    嘿,各位编程大侠们!在上一篇《解锁JavaScript魔力:不容错过的代码小妙招(一)》中,我们一同领略了JavaScript世界里部分神奇小妙招的魅力。现在,让我们继续这场充满惊喜的编程之旅,探索更多能让你的代码如魔法般酷炫的小技巧。......
  • Gradient checkpointing 核心流程详细讲解
    文章目录0.概述1.简单反向传播1.1整体流程1.2详细说明1.3总结2.初步优化版本2.1整体流程2.2详细说明2.3总结3.Checkpointed反向传播3.1整体流程3.2详细说明3.3总结4.补充:内存分配算法参考0.概述Gradientcheckpointing的核心思想是不保存所有层......
  • 间接分支追踪(Indirect Branch Tracking,IBT) 是 Intel Control-flow Enforcement Techno
    间接分支追踪(IndirectBranchTracking,IBT)是IntelControl-flowEnforcementTechnology(CET)的核心组件之一,旨在加强程序的控制流保护,防止恶意代码通过控制流劫持技术(如ROP(Return-OrientedProgramming)或JOP(Jump-OrientedProgramming))来绕过安全机制,执行恶意行为。IBT的......