JavaScript --02 语法

语法

JavaScript的语法和Java语言类似,每个语句以;结束,语句块用{ ... }。但是,JavaScript并不强制要求在每个语句结尾加 ; ,浏览器负责执行JavaScript代码的引擎会自动在每个语句的结尾补上 ; 。
1.赋值语句:
var  x = 1;
2.字符串(也可视为一个完整的语句):
'Hello, world';
3.一行代码可以包含两个语句,每个语句用 ; 结束
var x = 1; var y = 2;
4.{ ... }还可以嵌套,形成层级结构,{ ... }内的语句具有缩进,通常是4个空格,编写代码是要遵循缩进规则。

5.用 // 开头直到行末的字符视为注释,  /* ... */可以把多行字符包裹起来,从而侍卫一个注释。

6.JavaScript不区分整数和浮点数,统一用Number表示。
123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity

7.字符串是以单引号或双引号括起来的,比如‘abc’, "xyz"等等。布尔值和布尔代数的表示完全一致,一个布尔值只有true、false两种值。

8.==比较的时候,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果,第二种是===,它不会自动转换数据类型,如果数据类型不一致,返回flase,如果一致,再比较。因此,不要使用==比较,始终坚持使用===比较。

9. NaN 这个特殊的Number与所有其他值都不相等,包括它自己。唯一能判断NaN的方法是通过isNaN()函数。
isNaN(NaN); //true
10.浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:
Math.abs(1 / 3 - ( 1 - 2 / 3)) < 0.0000001; //true
1 / 3  === (1 - 2 / 3) //false
11.null表示一个’空‘值,与null类型类似的undefined,它表示“未定义”。JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义,事实证明,这并没有什么卵用,区分两者的意义不大,大多数情况下,我们都应该用null,undefined仅仅在判断函数参数是否传递的情况下有用。

12.JavaScript的数组可以包含任意数据类型,例如:[ 1, 2, 3.14, 'Hello', null, true]; 元素之间用,分隔,同时我们可以通过Array()函数实现, new Array[1, 2, 3]; 

13. JavaScript的对象是一组由键-值组成的无序集合,例如:

var person = {
	name: 'Bob',
	age: 20,
	tags: ['js', 'web', 'mobile'],
	city: 'Beijing',
	hasCar: true,
	zipcod: null
};
JavaScript对象的键都是字符串类型,值可以是任何数据类型,要获取一个对象的属性,我们用对象变量,属性名的方式:
person.name; // 'Bob'  person.zipcode; //null

14.JavaScript的变量名是大小写英文,数字,$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字。申明一个变量用var语句。
var a; //申明了变量a,此时a的值为underfined
var $b = 1; //申明变量$b,同时赋值为1
var s_007 = '007'; //s_007是一个字符串
var Answer = true; //Answer是一个布尔值true
var t = null; // t的值是null
JavaScript的变量本身类型不固定,因而称为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值类型不匹配,就会报错。
var a = 123;
a = "ABC"; //JavaScript 可以


15.JavaScript中, 如果一个变量没有通过var 申明就被使用,那么该变量就自动被申明为全局变量,从而使用变量时会造成变量的互相影响,产生难以调试的错误结果。使用var申请的变量的范围被限制在该变量被申请的函数体内。为了修补上述设计缺陷,ECMA在后续规范中推出了strict模式,即强制通过var申请变量,没使用var申请变量就使用,会导致运行错误。启用strict模式的方法是在JavaScript代码的第一行写上: ‘use strict',支持strict模式的浏览器将开启strict模式,不支持strict模式的浏览器将会把它当做一个字符串执行。所有的JavaScript的代码采用strict模式可以避免上述缺陷。

16.最新的ES6标准新增了一种多行字符串的表示方法,用反引号‘...'表示:
`这是一个
多行
字符串’;

17. JavaScript可以用+号连接多个字符串,ES6新增了以一种模板字符串,它可以自动替换字符串中的变量:
var name = '小明’;
var age = 20;
var message = `你好,${name}, 你今年${age}岁了!`;
18.字符串是不可变的,toUppeCcase() 把一个字符串全部转为大写;toLowerCase() 把一个字符串全部转为小写;indexOf()会搜索指定索引区间的字串;
var s = 'Hello, world'
s.length;
s[0];
s.toUpperCase();
s.toLowerCase();
s.indexOf('world');
s.substring(0, 5);





猜你喜欢

转载自blog.csdn.net/WilliamChancwl/article/details/78137694