JavaScript学习笔记--语法

  代码风格:

  • 每句结尾不用加分号;
  • 单行注释用//,多行注释用/*...需要注释掉的代码....*/
  • 严格区分大小写
  • 优雅的代码需要注意锁进

 基础知识:

  • Number:JavaScript不区分整数和浮点数,统一用Number表示。十六进制用0x前缀和0-9,a-f表示。

  • 字符串:以单引号'或双引号"括起来

     \n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。多行字符串用反引号 ` ... ` 表示。

`这是一个

多行

字符串`;

如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。

如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:

'I\'m \"OK\"!';

表示的字符串内容是:I'm "OK"!

     多个字符串连接起来,可以+号连接。或者用 反引号`.......`和 ${.....}连接。

var name = '小明';

var age = 20;

var message = '你好, ' + name + ', 你今年' + age + '岁了!';

alert(message);

----------------------------------------------

var name = '小明';

var age = 20;

var message = `你好, ${name}, 你今年${age}岁了!`;

alert(message);

  字符串是不可变的.下面这些方法本身不会改变原有字符串的内容,而是返回一个新字符串

toUpperCase()把一个字符串全部变为大写。

toLowerCase()把一个字符串全部变为小写。

indexOf()会搜索指定字符串出现的位置。

substring()返回指定索引区间的子串。

var s = 'HEllo';

var lower = s.toLowerCase(); // 返回'hello'并赋值给变量lower

lower; // 'hello'

var s = 'hello, world';

s.indexOf('world'); // 返回7

s.indexOf('World'); // 没有找到指定的子串,返回-1

var s = 'hello, world'

s.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello'

s.substring(7); // 从索引7开始到结束,返回'world'

  • 布尔值:truefalse

  • 比较运算符:

 JavaScript允许对任意数据类型做比较

false == 0; // true

false === 0; // false

要特别注意相等运算符==JavaScript在设计时,有两种比较运算符:

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较

NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示

Infinity; // Infinity表示无限大,当数值超过了JavaScriptNumber所能表示的最大值时,就表示为Infinity

另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己:

NaN === NaN; // false

唯一能判断NaN的方法是通过isNaN()函数:

isNaN(NaN); // true

最后要注意浮点数的相等比较:

1 / 3 === (1 - 2 / 3); // false

浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:

Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

  •  null和undefined

null表示“空”,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串。

null表示一个空的值,而undefined表示值未定义。大多数情况下,用null。undefined仅仅在判断函数参数是否传递的情况下有用。

  • 数组

两种创建方式。更多的用第二种

new Array(1, 2, 3); // 创建了数组[1, 2, 3]

var arr = [1, 2, 3.14, 'Hello', null, true]

arr[0]; // 返回索引为0的元素,即1

arr[5]; // 返回索引为5的元素,即true

arr[6]; // 索引超出了范围,返回undefined

  • 对象

JavaScript的对象是一组由键-值组成的无序集合。Ex:

var person = {

    name: 'Bob',

    age: 20,

    tags: ['js', 'web', 'mobile'],

    city: 'Beijing',

    hasCar: true,

    zipcode: null

};

要获取一个对象的属性,我们用对象变量.属性名的方式:

person.name; // 'Bob'

person.zipcode; // null

  • 变量

变量名是大小写英文、数字、$_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如ifwhile等。申明一个变量用var语句。使用等号=对变量进行赋值

  • strict模式(精确模式)

申明一个变量必须用var语句。在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

 

 

猜你喜欢

转载自www.cnblogs.com/kimiyo/p/9501248.html