JavaScript的标识符
1、什么是标识符?
变量、函数、属性的名字,或者函数的参数。
2、标识符的命名规则:
(1)、由字母、数字、下划线(_ )或美元符号( $ )组成
(2)、不能以数字开头
(3)、不能使用关键字、保留字等作为标识符
什么是变量?
ECMAScript的变量是松散类型
松散类型:可以用来保存任何类型的数据
换句话说,每个变量仅仅是一个用于保存值的占位符而已
变量命名规范
1.只允许使用 数字、字母、下划线、$ (不能使用数字开头)
2.严格区分大小写
3.不要重复定义/声明
4.关键词/保留词 不能用来做变量名
5.语义化驼峰命名
- 关键字 => js已经赋予特殊功能的单词
- 保留字 => js预订可能未来要使用的字
关键字:
break、else、new、var、 case、 finally 、 return、 void 、 catch 、for 、switch 、 while 、 continue、 function 、this 、 with 、default 、 if 、 throw 、 delete 、 in 、 try 、do 、 instranceof、 typeof
保留字:
abstract 、 enum 、int 、 short 、 boolean 、export 、interface、 static、 byte 、extends 、 long 、 super 、 char 、 final 、native 、synchronized 、 class 、float 、 package 、throws 、 const 、goto 、private 、transient 、 debugger 、 implements 、protected 、 volatile 、 double 、import 、public
定义变量的多个写法
使用 let 关键字定义一个变量
同一个变量不能多次定义
1.定义时赋值
赋值运算符, 变量的赋值用等号,=就是赋值符号。
在JS中等号没有其他的含义,=就表示赋值。
2.先定义后赋值
let x;
let y;
x = 10;
y = 20;
3.同时定义多个变量,用逗号隔开
let x,y;
x = 10;
y = 20;
//等价于
let x = 10,
y = 20;
注意
如果变量赋值的时候,忘了写 let 命令,这条语句也是有效的。
let a = 1;
// 基本等同
a = 1;
//省略声明的变量是全局变量 不推荐省略let操作符来定义全局变量 建议总是使用let命令声明变量
如果一个变量没有声明就直接使用,JavaScript 会报错,变量未定义。
console.log(x);
// ReferenceError: x is not defined
4.定义常量
const x = 3.1315927;
//const 定义的变量称之为常量,是不允许重新赋值的.
注意 :
= 左边为一个变量,不能为表达式
let a = 10;
let b = 5;
let c;
a - c = b // 报错 ,赋值运算符左边不能为表达式
console.log(c);
语句
JavaScript 程序的执行单位为行,一行一行地执行
语句是为了完成某种任务而进行的操作。
let a = 1 + 3; //这条语句先用let命令,声明了变量a,然后将1 + 3的运算结果赋值给变量a //1 + 3叫做表达式(expression),指一个为了得到返回值的计算式。
语句和表达式的区别
语句主要为了进行某种操作,一般情况下不需要返回值
表达式则是为了得到返回值,一定会返回一个值。 JavaScript 语言中预期为值的地方,都可以使用表达式。
JavaScript 是一种动态类型语言,也就是说,变量的类型没有限制,变量可以随时更改类型。
let a = 100;
a = "小甘子";
//第二次赋值的时候 ,因为变量a已经存在,不需要使用var命令
区分变量还是直接量
变量的时候,不能加引号。如果变量加上引号,就变成字符串的直接量了。
var a = 200;
console.log("a"); //a
var a = "大家好";
console.log(a); //大家好
//引号是“字符串”的定界符,所以在双引号里面的a已经失去了变量的意思,就是一个字符串a。
数据类型
基本类型:
number 数字
string 字符串
boolean 布尔值
undefined 未定义
null 空指针
引用数据类型:
object 对象
ES6新增
symbol 唯一值
bigint 大整数
String
基本介绍
字符串是由0或是多个字符组成的字符序列,即字符串;
字符串可以用双引号(“”)或是单引号(‘’)或模板字符串(``)包裹起来,
let b = "小干";//双引号
let bb = '小宝';//单引号
let bbb = `雪糕`;//模板字符串
如果一个数字,用引号引起来,那么就是字符串了。
console.log("666");
不加引号是错误的
// 不能不加引号,这是错误的:
console.log(小宝牛逼);
注意引号必须是同种引号,混用错误
console.log('嘻嘻");
正常情况
引号内部可以有不同种的引号,比如双引号里面可以有单引号:
// 双引号中用单引号
console.log("你看过'花儿'吗");
// 单引号中用双引号
console.log('你看过"花儿"吗');
如果要在双引号里使用双引号或者单引号内使用单引号
let b1 = "小\"\"甘";
//使用\进行转义 将有意义的符号转为没有意义的字符
可以将没有意义的字面n
转为有意义的换行
//转义字符
alert("我\n啊\n怎么可以\n那么可爱呢,真是伤脑筋哦");
boolean
布尔(逻辑)只能有两个值:true 或 false。
let c = true; // true
let c = false //false
let d = 20 > 30;
console.log(d);//false
如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。
除了下面六个值被转为false
,其他值都视为true
。
undefined
null
false
0
NaN
""或''或 ``(空字符串)
布尔值往往用于程序流程的控制
if ('') {
console.log('true');
}
//if命令后面的判断条件,预期应该是一个布尔值
// JavaScript 自动将空字符串,转为布尔值false
//导致程序不会进入代码块,所以没有任何输出。
Number
let a = 10;
let aa = 10 + 20; //运算整体赋值给aa变量
整数
JavaScript中,数字的整数字面量可以有三种进制:
10进制: 普通的数字就是十进制
8进制:如果以0、0o、0O开头数字字面量是八进制,八进制只包括数字0~7
16进制:如果以0x,0X开头数字字面量是十六进制。十六进制整数可以包含(0-9)和字母 a-f 或 A-F
八进制
//以0开头,是八进制;显示的时候会以十进制显示
console.log(017); //15 //7*8的零次方 + 1*8的一次方
console.log(0o17); //15
console.log(0O17); //15
console.log(044)