javascript高级程序设计学习笔记——第三章 基本概念

产业园区如何高效对接企业技术需求与高校科研成果?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

一、语法

ECMAScript的语法大量借鉴了C及其他类C语言的语法;

1、区分大小写

ECMAScript中的一切都是区分大小写的(变量、函数名和操作符);

2、标识符

所谓标识符,就是指变量、函数、属性的名字,或者函数的参数,标识符可以是按照下列的格式规则组合起来的一或多个字符:

第一个字符必须是一个字母、下划线或一个美元符($)构成;

其他字符可以是字母、下划线、美元符号($)或数字;

按照惯例,ECMAScript标识符采用驼峰大小写格式(驼峰命名法);

不能把关键字、保留字、true、false和null用作标识符;

3、注释

ECMAScript使用C风格的注释,包括单行注释(//注释内容)和多行注释(/*注释内容*/);

4、严格模式

ECMAScript 5 引入了严格模式的概念,严格模式是javascript定义了一种不同的解析与执行模型。在严格模式下,ECMAScript 3 中一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。要在整个脚本中启用严格模式,可以在顶部添加如下代码:

"user strict";

这行代码是一个编译指令,用于告诉支持的javascript引擎切换到严格模式;

在函数内部的上方包含这条编译指令,也可以指定函数在严格模式下执行:

function doSomething(){
	"user strict";
	//函数体
}

5、语句

ECMAScript中的语句以一个分号结尾,虽然语句结尾的分号不是必需的,但是建议任何时候都不要省略;

二、关键字和保留字

按照规则, 关键字和保留字不能作为标识符和属性名;

三、变量

ECMAScript的变量时松散类型的,所谓松散类型就是可以用来保存任何类型的数据,定义变量时要使用 var 操作符,后跟变量名,如:

var message;	//该变量可以用来保存任何类型的数据,像这种没有经过初始化的变量,会保存一个特殊的值——undefined;


可以在修改变量值的同时修改值的类型:

var message = "Hellow";
message = 100;		//有效,不推荐

省略var操作符可以定义变量为全局变量,但不推荐这种做法,因为在局部作用域中定义的全局变量很难维护;

function test(){
	message = "Hellow";		//不推荐这种方式定义变量message
}
test();
alert(message);				//有效,打印 "Hellow"

可以使用一条语句定义多个变量;

var message = "Hellow",found = false,age = 12;

因为ECMAScript是松散类型,因此使用不同类型初始化变量的操作可以放在一条语句中完成;

四、数据类型

ECMAScript中有5中简单数据类型(也称为基本数据类型):Undefined、Null、Number、Boolean、String,还有一种复杂数据类型——Object;

ECMAScript不支持任何创建自定义类型的机制,而所有的值最终都将是上述的6中数据类型之中的一种;

1、typeof操作符

检测给定变量的数据类型——typeof 操作符,对一个值使用typeof操作符可能返回下列字符串:

"undefined"——如果这个值未定义;

"boolean"——如果这个值是布尔值;

"string"——如果这个值是字符串;

"number"——如果这个值是数值(整数、浮点数);

"object"——如果这个值是对象或null;

"function"——如果这个值是函数;

var message = "some thing";
alert(typeof message);			//"string"
alert(typeof(message));			//"string"
alert(typeof 12);			//"number"


typeof是一个操作符而不是函数,所以例子中的圆括号不是必需的,可用可不用;

2、Undefined类型

Undefined类型只有一个值,就是特殊的undefined;在使用var声明变量但没有初始化的时候,这个变量的值就是undefined;

var message;
alert(message == undefined);		//true

对于未声明的变量,只能执行一项操作,就是使用typeof操作符检测其数据类型;

var message;				//这个变量声明之后默认取得了undefined值;
//下面这个变量并没有声明
//var age
alert(typeof message);			//"undefined"
alert(typeof age);			//"undefined"

3、Null类型

Null类型只有一个值null,null值是一个空对象指针;使用typeof操作符检测null值,返回的是"object"类型;

var car = null;
alert(typeof(car));//"object"

如果定义的变量准备在将来用于保存对象,那么最好将这个变量显示的初始化为null;这样一来,只要直接检查null就可以知道相应的变量是否已经保存了一个对象的引用;

undefined值是派生自null值的;

alert(null == undefined);		//true

尽管null和undefined有这样的关系,但它们的用法完全不同。无论在什么情况下都没有必要把一个变量的值显示的设置为undefined,如果定义的变量准备在将来用于保存对象,那么最好将这个变量显示的初始化为null;

4、Boolean类型

Boolean类型只有两个值:true和false,true不一定等于1,false不一定等于0,区分大小写;

要将一个值转换为对象的Boolean值,可以调用转型函数Boolean(任何数据类型的值);

var message = "Hellow world!";
var messageAsBoolean = Boolean(message);

各种数据类型及其对应的转换规则:

String:任何非空字符串转换为true值,空字符串(" ")转换为false值;

Number:任何非0数字值(包括无穷大)转换为true值,0或NaN转换为false值;

Object:任何对象转换为true值,null转换为false值;

Undefined:undefined值转换为false值;

5、Number类型

6、String类型

7、Object类型

五、操作符

1、一元操作符

2、位操作符

3、布尔操作符

4、乘性操作符

5、加性操作符

6、关系操作符

7、相等操作符

8、条件操作符

9、赋值操作符

10、逗号操作符

六、语句

1、if语句

2、do-while语句

3、while语句

4、for语句

5、for-in语句

6、label语句

7、break和continue语句

8、with语句

9、switch语句

七、函数

ECMAScript中的函数使用function关键字声明,后跟一组参数和函数体,函数的基本语法如下:

function functionName(arguments0, arguments1, argument2 ...){

}

函数可以通过函数名调用,后面还要加上一对圆括号和参数,圆括号中的参数如果有多个,可以用逗号隔开;

ECMAScript 中的函数在定义是不必指定是否返回值;

return语句也可以不带有任何返回值,在这种情况下,函数会停止执行并返回 undefined 值;

严格模式对函数有一些限制:

不能把函数命名为eval或arguments;

不能把参数命名为eval或arguments;

不能出现两个命名参数同名的情况;

1、理解参数

ECMAScript函数不介意传递进来多少个参数,也不在乎传进来参数时什么数据类型。也就是说,即使你定义的函数只接收两个参数,在调用这个函数时未必一定要传递两个参数。可以传递一个或三个甚至不传递参数,而解释器不会有什么怨言;

实际上,函数可以通过arguments对象来访问参数数组,从而获取传递给函数的每一个参数;

function sayHi(){
<span style="white-space:pre">	</span>alert("Hello" + arguments[0] + "," + arguments[1]);
}

ECMAScript函数重要特性:函数命名参数只是为了提供便利,但不是必需的;

通过访问 arguments 对象的length属性可以知道有多少个参数传递给函数,如:

function howManyArgs(){
<span style="white-space:pre">	</span>alert(arguments.length);
}
howManyArgs();<span style="white-space:pre">			</span>//0
howManyArgs(12, "we");<span style="white-space:pre">		</span>//2
howManyArgs(12);<span style="white-space:pre">		</span>//1

arguments 对象可以跟命名参数一起使用,如:

function doAdd(num1, num2){
<span style="white-space:pre">	</span>if(arguments.length == 1){
<span style="white-space:pre">		</span>alert(num1 + 10);
<span style="white-space:pre">	</span>}else if (arguments.length == 2){
<span style="white-space:pre">		</span>alert(arguments[0] + num2);
<span style="white-space:pre">	</span>}
}

arguments 的值永远跟对应的命名参数的值相等,在函数中,修改 arguments 的值,对应的命名参数的值会发生改变以保持跟 arguments 的值一致;但是修改命名参数的值,不会改变 arguments 中对应的值;

没有传递值的命名参数将自动被赋值 undefined;


2、没有重载

ECMAScript函数不能像传统意义上那样实现重载,如果在ECMAScript中定义了两个名字相同的函数,则该名字只属于后定义的函数,如:

function addSomeNumber(num){
<span style="white-space:pre">	</span>return num + 100;
}
function addSomeNumber(num){
<span style="white-space:pre">	</span>return num + 200;
}
var result = addSomeNumber(100);<span style="white-space:pre">	</span>//300


实验室LIMS系统选型指南:从赛默飞到金现代,5大主流方案横评 本文深入分析了实验室LIMS系统选型的5大核心维度,包括架构选择、行业适配性、合规性设计、智能化程度和成本模型。通过对比赛默飞、金现代等主流厂商的优劣势,提供实战避坑策略,帮助实验室管理者做出明智决策,提升运营效率和合规水平。 阅读详情

相关推荐

单相PWM整流器的数学模型、工作原理

单相PWM整流器的数学模型、工作原理

weixin_58670090的博客 1万+

JS高级程序设计学习笔记-第三章 基本概念

语法 区分大小写 true(关键字) 和 True (标识符),它们不一样。 标识符 所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。可以是按照下列格式规则组合起来的一个多个字符: 第一个字符必须是一个字母、下划线(_)或一个美元符号($); 其他字符可以时字母、下划线、美元符号或数字。 按照惯例,采用驼峰大小写格式,也就是第一个字母小写,剩下的每个有意义的单词的首字母大写。例如,myCar、myShoe. 注释 分为单行注释和多行注释。 单行注释用双斜杠表示,多行注释用一个斜杠和一个星号开头

qq_40890601的博客 332

b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor

b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor ;TypeError: bbox_iou() got an unexpected keyword argument 'xywh‘

weixin_68331871的博客 3020

JavaScript 高级程序设计——第三章基本概念 学习笔记

3.1语法           类C的语法      1.区分大小写      2.标识符      3.注释  //单行注释                    /*                 *                  */ 多行注释      4.严格模式  “use strict”          5. 语句   3.2 关键字和保留字 3.3 变量  

sinat_33560799的博客 240

生信分析服务MR孟德尔随机化单细胞测序转录组数据分析网络药理学

通过上述技术整合,可实现从基因-环境-疾病关联到药物机制解析的全链条研究,为疾病机制解析和药物研发提供新思路。结合,是当前生物信息学领域的前沿方法,尤其在疾病机制解析、靶点发现和药物研发中展现出巨大潜力。

matlabgoodboy的博客 1520

第十一届全国大学生GIS应用技能大赛——广西区域发展布局示意图

我们需要制作一幅广西区域发展布局示意图,最终成图参考“数据”文件夹中的广西区域发展布局示意图.png。地图使用的投影坐标系是 Asia_North_Albers_Equal_Area_Conic,其中地理坐标系是China_Geodetic_Coordinate_System_2000,中央经线东经 105°,标准纬线是北纬 25°和北纬 47°,出图比例尺 1:4,780,000。

@HNUSTer的博客 7799

《JavaScript高级程序设计》学习笔记(1)——第三章 基本概念

语法严格模式严格模式是为JavaScript定义了一种不同的解析与执行模型。严格模式中,会对不确定的行为进行处理,对不安全行为抛出错误。在顶部或在函数中添加"use strict";    即启用严格模式支持严格模式的浏览器有IE10+、FIreFox 4+、Safari 5.1+、Opera 12+、Chrome变量省略var操作符,即给未声明的变量赋值会使变量成为全局变量,这种写法在严格模式下...

weixin_38385524的博客 231

U-net复现pytorch版本 以及制作自己的数据集并训练

GitHub链接: https://github.com/milesial/Pytorch-UNet 论文链接:

candice5566的博客 3万+

JavaScript高级程序设计红宝书学习笔记第三章基本概念

第三章 基本概念 本章内容 语法 数据类型 操作符 语句 函数 3.1 语法 3.1.1 区分大小写,ECMAScript中的一切(变量、函数名和操作符)都区分大小写。 3.1.2 标识符 标识符:变量、函数、属性的名字,或者函数的参数;标识符的格式规则如下: 第一个字符必须是一个字母、下划线、或者是一个美元符号$; 其他的字符可以是字母、下划线、美元符号或者是数字; 标识符中的字母也...

公众号:前端铁蛋 644

MicroPython学习:在STM32上进行移植

本文将介绍如何在STM32上移植MicroPython,并提供相应的源代码。通过以上步骤,你已经成功地将MicroPython移植到STM32上,并可以使用MicroPython语言编写和运行代码。你可以进一步探索MicroPython的功能和API,以利用STM32的各种外设和功能。使用STM32CubeProgrammer或其他适当的烧录工具,将编译生成的MicroPython固件烧录到STM32微控制器中。打开该文件,并根据你的STM32微控制器类型进行必要的配置更改。模块来控制STM32的LED。

JeeVue的博客 1237

【深度学习新浪潮】算力上太空:NVIDIA Space-1 Vera Rubin Module 深度技术解析

NVIDIA Space-1 Vera Rubin Module 不只是一款芯片模组,它是天地一体化 AI 的基础设施底座。它用成熟的 GPU 架构 + 航天级加固,把地面 AI 生态直接平移到太空。下一个 AI 创新战场,不在云端,而在轨道。在轨 LLM星上多模态实时处理卫星自主组网与分布式推理太空算力成为云计算的一级节点参考资料NVIDIA 官方博客:NVIDIA 推出太空计算,将 AI 送入太空轨道GTC 2026 黄仁勋主题演讲。

专注:太空算力、AI infra、异构调度、大模型成本工程 1125

【JS】JavaScript高级程序设计-第三章基本概念

本文章为JavaScript高级程序设计第三版的重点学习笔记,从第三章开始学习提示:以下是本篇文章正文内容,下面案例可供参考基本数据类型: Undefined Null Boolean Number String;使用typeof 来判断基础数据类型typeof null 返回的是objectnull == undefined 但 null!NaN和任何值都不相等包括NaNJS 精度问题使用arguments对象来访问函数参数。

sobergyn的博客 999

uniapp - 实现免费OCR文字识别方案,用户上传图片后进行扫描识别获取图片上的文字,uniApp纯前端做图片OCR识别——无需服务器进行OCR识别插件(不需要依赖任何SDK或第三方API服务)

uniapp实现orc识别免费的插件识别不花钱,无需第三方OCR文字识别API,uniApp拍照或者选择图片免费识别,纯前端不需要服务器,Uniapp提取图片上的文字,本地ocr识别技术,uni-app图片OCR识别文本,uniapp有没有免费的ocr识别组件,uniapp前端实现文字识别,身份证识别,营业执照识别 (兼容APP、H5、小程序 不需要任何SDK)跨端无SDK方案:Uniapp实现OCR文字,离线OCR识别,uniapp tesseract.js实现文字识别,uniapp文字识别无需依赖sdk

🏆 前端领域优质创作者 4250

JavaScript高级程序设计学习笔记第三章--基本概念

一、标识符: 1.区分大小写 2.命名规则: 第一个字符必须是一个字母、下划线(_)或一个美元符号($) 其他字符可以是字母、下划线、美元符号或数字 标识符中的字母也可以包含扩展的 ASCII 或 Unicode 字母字符(如 À 和 Æ) ,但不推荐这样做。 不能把关键字、保留字、true、false和null用作标识符 3.书写方式:最好按照驼峰大小写格式书写,就是第一个...

weixin_30363981的博客 93

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JavaScript 高级程序设计 读书笔记(第三章)

在 JavaScript 的世界里,第三章的内容可以说是奠基石,它决定了你对这门语言的基本理解。JavaScript 是弱类型语言,类型转换是家常便饭。以上就是第三章的读书笔记,下一篇我们深入解析第四章,聊聊变量、作用域和垃圾回收!严格模式可以让 JavaScript 变得更加严格,避免一些潜在的错误。在严格模式下,未声明的变量不能被赋值,防止意外创建全局变量。而一脸问号,那么恭喜你,这一章就是为你准备的。声明的变量不会被提升,访问前必须声明。声明的变量会被提升,但不会赋值。只是值的拷贝,所以修改。

dorabighead的博客 1162

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

javascript高级程序设计 javascript权威指南

这篇文章主要介绍了javascript高级程序设计 javascript权威指南,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

chatgpt001的博客 1238

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

你是怎么看完《JavaScript权威指南》《JavaScript高级程序设计》等这类厚书的?

你是怎么看完《JavaScript权威指南》《JavaScript高级程序设计》等这类厚书的? 如果js属于刚刚入门阶段,不建议抱着书一直看下去,因为这样你不容易明白这些定义和概念的用法.看着看着就会很迷惑的。建议先试着用原生JS写一些小项目和小程序,然后试着写博客做些笔记,把遇到的困惑写下来,带着疑问去学习。 如果有一定的js基础或者用JQuery等一些库做过一些小东西的话,可以先看《JavaS...

weixin_42314466的博客 1412

JS高级程序设计 电子版下载介绍

JS高级程序设计 电子版下载介绍 【下载地址】JS高级程序设计电子版下载介绍 《JS高级程序设计》是一本深入探讨JavaScript语言的权威著作,全面覆盖了JavaScript的历史、核心概念、面向对象编程、函数式编程、异步编程、DOM操作及Ajax等关键技术。无论你是JavaScript初学者,还是希望提升技能的前端...

gitblog_06750的博客 1121

笔记-JavaScript高级程序设计第三章思维导图

第三章 基本概念 最近在读JavaScript高级程序设计第三版的书,一边读一边用思维导图做了重点摘抄和整理,方便理解以及后面的复习。

lllittlemud的博客 384

JavaScript高级程序设计

DOM将整个页面抽象为一组分层节点。BOM用于支持访问和操作浏览器的窗口。

qq_24428851的博客 1194

《JavaScript高级程序设计第3章基本概念》笔记

3.1 语法 js的一切如变量,函数名,操作符都区分大小写。 3.1.2 标识符 首字符必须是字母或下划线或$,其他字符除了前面3个,还有数字。 3.1.3 注释风格 两种: //单行注释 /* * 多行注释 */ 3.1.4 严格模式 ES5引入了严格模式,在任意位置写上如下代码,即开启严格模式,严格模式下,某些代码执行会抛出异常。 "use strict"; 3.1.5...

夏商周 289

前端红宝书《JavaScript高级程序设计》核心知识总结

此文是对《JavaScript 高级程序设计》一书难点的总结,也是笔者在看了 3 遍之后的一些梳理和感想,希望能借此巩固js的基础和对一些核心概念有更深入的了解。摘要JS基本的数据类型和...

图灵教育 1534

《JavaScript高级程序设计》学习笔记

《JavaScript高级程序设计》学习笔记 去发现同类优质开源项目:https://gitcode.com/ 《JavaScript高级程序设计》学习笔记是一份详尽的资源,共计100+页。本笔记详细记录了JavaScript的各个方面,包括基础语法、高级特性、最佳实践等内容。它将帮助你深入理解JavaScript这门语言的本质,提升编程技能。 本学习笔记适合以下人群使用: 对JavaScrip...

gitblog_06783的博客 377

红宝书《JavaScript高级程序设计》学习笔记(一)JavaScript简介

红宝书《JavaScript高级程序设计》学习笔记是我阅读JavaScript红宝书留下的笔记,本笔记侧重于你应该花点时间去关注的知识,这些知识可能不太起眼,但在以后但学习中,或许就是你有一天达到瓶颈的绊脚石。 js诞生1995年,当时主要目的是处理输入验证,在js问世之前,表单验证是在服务器端进行的。 一个完整的JavaScript由三个不同的部分组成。 核心(ECMAScri...

苏一恒 745

javascript高级程序设计第四版(javascript高级程序设计第四版)

如何学习 JavaScript 先说说学js的条件 论条件,咱是文科生,大学专业工商管理,和计算机毛关系都没;有人说英语,读了四年大学,很遗憾,咱还四级没混过;就咱这条件都学得乐呵呵的,您还等啥。 当然学习JS也是有门槛的,就是你的html和css至少还比较熟练,您不能连这东东是干啥的都不知道就开始上JS了,学乘除前...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 843

《JavaScript 高级程序设计》学习笔记

我学习前端大概有三个月了,最近开始看这本比较厚的书,内容非常详细,很难完全记住。 因此我将书中的知识点记录下来,方便日后查阅。 第1章 JavaScript简介 1.1 JavaScript 简史 1.2 JavaScript 实现 1.2.1 核心(ECMAScript) 1.2.2 文档对象模型(DOM) 1.2.3 浏览器对象模型(BOM) 1.3 JavaScript 版本 1.4 小...

卡不加奇诺的博客 257
上一篇: javascript高级程序设计学习笔记——第二章 在HTML中使用javascript
下一篇: javascript高级程序设计学习笔记——第四章 变量、作用域和内存问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值