3.关键字与保留字
关键字:(在js中有特殊功能)
break do try typeof
case else new var
catch finally return void
continue for switch while
debugger this function with
default if throw instanceof
delete in
保留字:(将来可能成为关键字)
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 double implements protected
volatile import public
3.1 区分大小写
typeof 关键字, typeOf 非关键字
3.2 标识符
指变量,函数,属性的名字或者函数的参数。标识符是按照以下规则组合起来的一或多个字符:
1.字母,数字,下划线,$组成
2.只能以字母,下划线,$开头。
3.不能将关键字作为标识符。命名采用驼峰式命名
语句
每个语句以分号结尾,如果省略分号,由解析器确定语句的结尾,即分号可以省略,但是我们要求每个语句的末尾都应该有分号
4.变量
变量是一个值的容器,该容器的值可以随时改变。ECMAScript的变量是弱类型(松散类型),可以用来保存任何类型的数据。定义变量时使用var关键字。
变量的使用:
声明 var message;
初始化 message = “hello”
声明并初始化 var message = “hello”;
定义多个变量 var message= “hello”,found=false, age = 29;
变量名的命名规则:
变量名由字母,数字,下划线以及$组成。
不要使用下划线或者数字作为变量名的开头
变量名应该具有一定的意义,使用小驼峰命名规则 var userAgeTotal = “”;
不要使用关键字或是保留字
变量的使用
变量的使用一般用经过声明,初始化,使用三个步骤
// 变量声明 var a ; // 变量初始化 a = 3; // 变量调用 console.log(a);
js是弱类型的语言
弱类型语言具有如下特点:
- 变量的数据类型在初始化的时候确定
- 变量的数据类型可以随时发生改变
- 类型细分不明显
Java 是强类型语言
1.变量的数据类型在声明的时候确定
2.变量的数据类型一定确定不能更改
var
var用于声明一个变量,在es6中,可以通过let声明一个变量,通过const声明一个常量
变量可以重复声明
var a = b = c = 3; var d = 10,e = 20,f,g; //弱类型语言,变量容器可以混合使用 var a = "hello world";//变量的重复赋值(相同的数据类型、不同的数据类型) function a(){}
变量声明会被提升 (函数的声明也会)
//console.log(b);//报错 console.log(a);//不会报错 var a = 3; //等价于: var a;//在所有代码执行之前,js解释器会将js中所有的var声明的变量提升。 console.log(a); a=3;
var声明的变量的作用域
案例1
function foo(){ if(true){ var a = 3; console.log("inner",a);//inner 3 } console.log("outer",a);//inner 3 //没有块级作用域 } foo(); console.log(a);//error! 函数作用域:局部作用域 // var 的变量声明提前知会提升到当前作用域的最前面
案例2
//如果在函数中定义变量没有加var,该变量为全局变量 function test(){ message = "hello"; } test(); console.log(message); //可以访问
案例3
//用var操作符定义的变量将成为定义该变量的作用域中的局部变量 //全局作用域 function b() { a = 10; return; } var a = 1; b(); console.log(a);//10
案例4
x = 1;//window.x global.x console.log(x); //1 function y() { console.log(x); //undefined console.log(this.x);//1 var x = 2; console.log(x); //2 } y(); console.log(x);//1
案例5
//函数作用域:局部作用域 var a = 1; function b() { a = 10; return; //a函数声明,提前变量a,将a认为是函数b作用域的变量,具有局部效果 function a(){} } b(); console.log(a); // 1
5.数据类型
5.1 JavaScript基本数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
-JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型
var x; // x 为 undefined var x = 5; // 现在 x 为数字 var x = "John"; // 现在 x 为字符串
-字符串 String
字符串是存储字符(比如 “Bill Gates”)的变量。
字符串可以是引号中的任意文本。可以使用单引号或双引号:
var carname="Volvo XC60"; var carname='Volvo XC60';
可以在字符串中使用引号,只要不匹配包围字符串的引号即可:
var carname="Volvo XC60"; var carname='Volvo XC60';
可以使用字符字面量,转义字符
\n 换行 \t 制表 \b 退格
\r 回车 \ 斜杠 ’ 单引号
" 双引号
字符长度可通过length属性获取字符长度
var str = "我是字符串"; console.log(str); console.log(str.length); var s4='\n\t\b\r';
-数字 Number
JavaScript 只有一种数字类型。数字有很多类型,按照数字精度可以分为整数(int),单精度(float),双精度(double ),按照数字的表示方法可以分为二进制(Binary),八进制(Octal),十进制(decimal system),十六进制(Hexadecimal)。但是在js中,所有的数字统一使用Number来表示。
表示方法
-整数:
十进制 55 由0~9组成
八进制 070 首位为0,其他位有0~7组成
十六进制 0x11 首位为0x,其他位为09,AF
var num1 = 34; //不使用小数点来写 var num2 = 010; //8 var num3 = 0x10; //16 console.log(x1, x2, x3, x4);
-浮点数:
所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后必须至少有一位数字。浮点数值的最高精度是17位小数
普通浮点数 3.1415926
科学计数法 3.125e7 即31250000
var f1 = 3.1415926; //3.1415926 var f2 = 3.125e7; //31250000 console.log(f1, f2);
-非数值:
该数值表示一个本来要返回数值的操作数未返回数据的情况
var a = 10/ "a"; // a为NaN
-非数值检测:
判断参数是否“不是数值”,当参数para不是数值的时候返回true
isNaN(NaN); // true