3.JavaScript学习笔记——JS变量&语句基本规则

本文详细介绍了JavaScript中的变量声明、命名规则及值类型,包括原始值和引用值的区别。同时,讲解了JavaScript语句的基本规则,如分号的使用、语法错误的影响范围以及书写规范。重点讨论了栈和堆在存储原始值和引用值时的不同,通过示例阐述了它们的工作原理。
摘要由CSDN通过智能技术生成

JavaScript变量&语句基本规则

1. JavaScript的变量

HTML&CSS不能称为编程语言,编程语言基本的一点就是有变量。

1.1 变量声明

  • 声明、赋值分解

变量的使用,需要声明和赋值,声明和赋值可以分开写也可以一起写

var a;
a=100;

var b=200;
  • 单一var模式:使用一个var关键字声明由逗号分隔的多个变量。
var a,
    b=90,
    c=50,
    d,
    e;

写法如上,不同变量用逗号隔开,并且为了规范代码,不同变量之间要回车。

单一var模式的好处:

  1. 提供一个单一的地址以查找到函数需要的所有的局部变量;
  2. 防止出现变量在定义之前就被使用的逻辑错误;
  3. 帮助牢记要声明变量,以尽可能少地使用全局变量;
  4. 更少的编码 ,无论是输入代码还是传输代码都更加少了。

1.2 变量的命名规则

  1. 变量名必须以英文字母、英文下划线(_)或美元符号($)开头
  2. 变量名可以包括英文字母、下划线、美元符号、数字
  3. 不可以用系统的关键字、保留字作为变量名
  4. 按照惯例,ECMAScript 标识符采用驼峰命名法

1.3 值类型(数据类型)

1.3.1 原始值
  1. number(数字型):表示整数或浮点数,可以表示十进制以及二进制(0B)、八进制(0)和十六进制(0x)的数,另外还有特殊的数字:infinite(正无穷)、-infinite(负无穷)、NaN(非法数字);
  2. string(字符串型):用单引号或双引号括起来,注意转义字符的存在;
  3. boolean(布尔型):逻辑值型/真假值型,只有True和flase两个值;
  4. undefined:一般用于提醒变量未经赋值就使用;
  5. null:空,没有特别的意义,主要用于占位。
  6. Symbol(符号)是 ECMAScript 6 新增的
1.3.2 引用值

有array,object,function,date,RegExp等引用值,暂时不详细展开。

1.4 原始值和引用值的区别

1.4.1 原始值是存放在stack(栈)里面的,引用值大致是存放在heap(堆)里面的。

栈的特点是,first in, last out,先进后出。

原始值的值直接存放在栈中,存放顺序由栈底向上。且两个原始值之间相互赋值是,相应栈内容的拷贝。

例1:

var a = 10;
var b;
b = a;
a = 20;

此时,a的输出值是20,b的输出值是10。

栈内存地址
1008
a(1009)20
b(1010)10
1011(栈底)10

引用值的存放是,将值存放在堆中,并在栈中存放堆的地址

两个变量间的赋值是,栈内容的拷贝

例2:

var arr = [1,2];
var arr1 = arr;
arr.push(3);

此时,arr的输出值为1,2,3,arr1的输出值也是1,2,3

栈内存地址
1008
1009
arr1(1010)heap1008
arr(1011)(栈底)heap1008
堆内存地址
1008[1,2,3]
1009
1010
1011

例3:

var arr = [1,2];
var arr1 = arr;
arr = [1,2,3];

此时,arr的输出值是1,2,3,而arr1的输出值是1,2。arr的重新赋值,使arr的堆内存地址发生了变化。

栈内存地址
1008
arr(1009)heap1009
arr1(1010)heap1008
1011(栈底)heap1008
堆内存地址
1008[1,2]
1009[1,2,3]
1010
1011
  • 原始值是不可改变的,如例1中重新给a赋值,原本栈底的数据不会改变,而是在新的内存空间放入新值,使a指向新的栈地址。

2. JavaScript语句的基本规则

2.1 语句后面要用分号结束

但有个别语句后面不用加分号,例如函数后面,以及for和if后面不用加。

2.2 JavaScript语法错误会引发后续代码终止,但不会影响其他代码块

其中,错误分为两种:

  1. 低级错误(语法解析错误)
  2. 逻辑错误(标准错误,情有可原)

代码在解释执行之前会通篇扫描有无语法解析错误,若有这种错误,代码一行也不会执行。

逻辑错误不会被通篇扫描中发现,若无低级错误,就可以逐行解释代码,遇到逻辑错误就会终止解释。

不管哪种错误,只会影响当前代码块的执行,而不会影响其他代码块。

2.3 书写格式要规范,“+ - = /”两边都应该有空格

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值