javascript-语法概览

news2024/9/19 10:04:01

标识符

标识符指的是用来识别各种值的合法名称

  • 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)
  • 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字 0-9

JavaScript 有一些保留字,不能用作标识符

变量

声明

  • let。声明块级作用域的变量
  • const。声明不可变的常量,但实际上如果声明一个对象,这个对象本身还是可以修改属性的
  • var。声明函数作用域的变量

var 会存在变量声明提升,letconst 则不存在变量声明提升

let/const 在进入块级作用域后,会因为提升的原因先创建,但不会被初始化,直到声明语句执行的时候才被初始化,初始化的时候如果使用 let 声明的变量没有赋值,则会默认赋值为 undefined,而 const 必须在初始化的时候赋值。而创建到初始化之间的代码片段就形成了暂时性死区

Q&A

下面的输出,如何正确输出 1-5

for (var i = 0; i < 5; i++) {
  setTimeout(() => {
    console.log(i);
  }, 0);
}

关键字

  • this。指向函数的执行上下文
  • function。定义函数
  • class。定义类
  • async function。 定义一个异步函数表达式
  • await。暂停或恢复执行异步函数,并等待promise的resolve/reject回调
  • new。创建构造函数实例

.和 new 的优先级
new 后边紧跟对象,new 的优先级低;new 后边紧跟构造函数执行,new 的优先级高

  • new Foo.getName(). 的优先级高于 new
  • new Foo().getName()new Foo() 优先级更高

表达式

  • 属性访问符(obj.aobject["a"])
  • /ab+c/i。正则表达式
  • {}。对象初始化
  • []。数组初始化

运算符

  • 算术 +-*/%
  • 赋值 =
  • 复合,如 +=-=*=/=
  • 自增减++--
  • 比较 ><<=>===!====!==
  • 逻辑 &&||!??
  • 三元 ?:
  • 展开运算符 ...obj

+ 有一些额外的作用:

  • 连接字符串(5+'')
  • 转换为 Number(+'5'+false)

&&|| 也有一些额外的作用

  • 短路逻辑 let name = a || 'default'

以上只是罗列了一些常用表达式和运算符,更详细的参考 表达式和运算符

语句

  • 条件 if/else if/elseswitch
  • 循环 forwhiledo-whilefor...inlabelbreakcontinue
  • 异常捕获 try/catch/finally

注释

  • 单行 //
  • 多行 /** **/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2146059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyCharm的使用

PyCharm的入门使用教程 下载和安装PyCharm&#xff1a; 首先&#xff0c;访问JetBrains官方网站&#xff08;https://www.jetbrains.com/pycharm/&#xff09;下载PyCharm的最新版本。根据您的操作系统选择合适的版本进行下载。 安装完成后&#xff0c;打开PyCharm。 创建新…

Golang | Leetcode Golang题解之第413题等差数列划分

题目&#xff1a; 题解&#xff1a; func numberOfArithmeticSlices(nums []int) (ans int) {n : len(nums)if n 1 {return}d, t : nums[0]-nums[1], 0// 因为等差数列的长度至少为 3&#xff0c;所以可以从 i2 开始枚举for i : 2; i < n; i {if nums[i-1]-nums[i] d {t}…

出厂非澎湃OS手机解BL锁

脚本作者&#xff1a;酷安mlgmxyysd 脚本项目链接&#xff1a;https://github.com/MlgmXyysd/Xiaomi-HyperOS-BootLoader-Bypass/ 参考 B站作者&#xff1a;蓝空穹 https://www.bilibili.com/read/cv33210124/ 其他参考&#xff1a;云墨清风、水墨青竹、Magisk中文网 决定解BL…

HarmonyOS元服务与卡片

元服务与卡片 文章目录 一、元服务1.介绍2.常见元服务项目步骤 二、卡片1.介绍2.卡片的创建3.卡片的数据的变更4.卡片的进程间通讯4.1使用工具包4.2使用步骤 5.卡片路由postCardAction&#xff1a;快速拉起后台5.1格式5.2快速拉起指定页面--router5.3调用后台功能--call5.3卡片…

idea连接docker 自动化部署

进入Linux服务器 vim /lib/systemd/system/docker.service将 ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock 替换为 ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock新建文件 Dockerfile配置Dockerfile文…

rocky9虚拟机配置双网卡的详细过程

编辑虚拟机配置->添加->选择网络适配器->确认->打开虚拟机 1.ip add查看第二个网卡的名称&#xff0c;我这里是ens36 2.cd到网卡的配置文件目录 cd /etc/NetworkManager/system-connections/ ls3.复制一份网卡的配置文件并改名为ens36.nmconnection(根据自己的第…

工程车辆目标检测、程车检测算法、工程车辆类型检测算法

工程车检测算法主要用于智能交通系统、建筑工地管理、矿山开采、物流运输等领域&#xff0c;通过图像识别技术来检测和识别工程车&#xff0c;以提高安全管理、交通流量管理和资源调度的效率。以下是关于工程车检测算法的技术实现、应用场景及优势的详细介绍。 一、技术实现 工…

钉钉与MySQL对接集成获取部门列表2.0打通EXECUTE语句

钉钉与MySQL对接集成获取部门列表2.0打通EXECUTE语句 接入系统&#xff1a;钉钉 钉钉是阿里巴巴集团打造的企业级智能移动办公平台&#xff0c;是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉工…

《深入理解 Java 线程池:高效管理线程的利器》

线程池 1. 什么是线程池&#xff1f; ​ 线程池内部维护了若干个线程&#xff0c;没有任务的时候&#xff0c;这些线程都处于等待空闲状态。如果有新的线程任务&#xff0c;就分配一个空闲线程执行。如果所有线程都处于忙碌状态&#xff0c;线程池会创建一个新线程进行处理或…

【sgCreateCallAPIFunctionParam】自定义小工具:敏捷开发→调用接口方法参数生成工具

<template><div :class"$options.name" class"sgDevTool"><sgHead /><div class"sg-container"><div class"sg-start"><div style"margin-bottom: 10px">参数列表[逗号模式]<el-too…

小微金融企业系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;贷款信息管理&#xff0c;贷款申请管理&#xff0c;贷款种类管理&#xff0c;代办项目管理&#xff0c;项目分类管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;代办项…

基于51单片机的物联网安防系统(Proteus+Python脚本+阿里云)

基于51单片机的物联网安防系统使用Proteus进行仿真&#xff0c;LCD12864进行数据显示&#xff0c;集成了温湿度传感器、烟雾、甲烷传感器&#xff0c;执行器件是风扇&#xff0c;采用L298进行驱动&#xff0c;按键实现用户交互&#xff0c;蜂鸣器报警&#xff0c;红外检测人员状…

如何将示波器输出的电压数据转换为频域数据,五句代码解决问题,详细分析五句代码

这四句代码是关于对电压数据&#xff08;voltage&#xff09;进行快速傅里叶变换&#xff08;FFT&#xff09;&#xff0c;并生成相应的频率向量&#xff0c;提取并计算频谱的幅度&#xff0c;同时只保留正频率部分。 五句代码如下图所示&#xff1a; % 计算采样频率dt mean(…

Python | Leetcode Python题解之第413题等差数列划分

题目&#xff1a; 题解&#xff1a; class Solution:def numberOfArithmeticSlices(self, nums: List[int]) -> int:n len(nums)if n 1:return 0d, t nums[0] - nums[1], 0ans 0# 因为等差数列的长度至少为 3&#xff0c;所以可以从 i2 开始枚举for i in range(2, n):i…

Rust GUI框架 tauri V2 项目创建

文章目录 Tauri 2.0创建应用文档移动应用开发 Android 前置要求移动应用开发 iOS 前置要求参考资料 Tauri 2.0 Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架…

电源电压输入输出保护电路

输入正负极接反芯片损坏 解决方案&#xff1a;添加防反接电路(蓝色虚线框中电路)。 Q1:VDS≥1.5*VINMAX&#xff1b; DZ1:VDZ110V&#xff0c;500mW&#xff1b; R3:20K&#xff1b; R4:20K。 输入尖峰电压损坏芯片 ➢ 解决方案一&#xff1a;输入添加瞬态尖峰电压吸收电路…

【中国留学网-注册_登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

如何兼容性地开发响应式站点——WEB开发系列40

CSS在不同浏览器的支持历史中&#xff0c;有过多次变革。尽管现代浏览器逐步趋向一致&#xff0c;但仍有一些较旧的浏览器广泛使用&#xff0c;特别是在某些地区或特定环境中。 一、浏览器生态&#xff1a;了解你的网站用户 在设计和开发站点之前&#xff0c;了解目标用户所使…

多旅行商问题:鹈鹕优化算法(Pelican Optimization Algorithm,POA)求解多仓库多旅行商问题MD-MTSP(提供Matlab代码)

一、鹈鹕优化算法 鹈鹕优化算法(Pelican Optimization Algorithm,POA)由Pavel Trojovsk和Mohammad Dehghani 于2022年提出&#xff0c;该算法模拟了鹈鹕在狩猎过程中的自然行为。 鹈鹕很大&#xff0c;喙很长&#xff0c;喉咙里有一个大袋子&#xff0c;用来捕捉和吞咽猎物。…

记录一下ElementUI 3 在浏览器导入, table表格显示问题

当时问题忘了截图, 现在通过文字记录一下问题 我直接在html了引入 vue3 和 ElementUI 3 , 使用了table组件, 但是表格的td 总是只显示一列, 问题是我的 el-table-column 标签 没有结束标签 , 在vue文件模块化里写不需要结束标签, 在浏览器里无法直接识别出来, 所以他是渲染了第…