JavaScript
1.计算之中经常出现的一些问题:
(该情况适用于Python等其他程序设计语言)
浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。
1 / 3 === (1 - 2 / 3); // false
要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:

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

2.比较运算符:
JavaScript在设计时,有两种比较运算符:
第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。
另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己:

NaN === NaN;         // false


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

isNaN(NaN);             // true

3.strict模式:
由于JavaScript设计之初并没有强制要求使用var声明新的变量,然而不通过var声明的变量直接使用会被当作全局变量(为了修补JavaScript这一严重设计缺陷,ECMAScript在后续规范中推出了strict模式),这对之后的开发会带来非常打的困扰。因此我们需要strict模式,启用该模式的方法是在JavaScript代码的第一行写上:

'use strict';

这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。

'use strict';
// 如果浏览器支持strict模式,
// 下面的代码将报ReferenceError错误:
abc = 'Hello, world';
console.log(abc);



避免开发中带来的一些麻烦,建议一直使用strict模式编写JavaScript代码。

4.多行字符串
由于\n使用起来比较复杂,在最新的ES6标准中,新增了新的多行字符串的表示方法:·……·(反引号,位置在键盘的数字键1左边,ESC键的下方)
支持ES6标准的浏览器对于下面的代码能够正常运行:
console.log(`多行
字符串
测试`
);



5.字符串${}占位符的使用
对于字符串,可以使用+对不同的字符串进行连接操作,但是对于需要多次使用的字符串,使用+太过于麻烦,这就需要使用字符串占位符${}进行操作。
var name = ‘雨下一整晚real’;
console,log("您好,${name}");



5.操作字符串方法
在操作字符串时,可能会使用到下面的一些方法:

toUpperCase()         //把一个字符串全部变为大写
toLowerCase()         //把一个字符串全部变为小写
indexOf()             //会搜索指定字符串出现的位置
substring()           //返回指定索引区间的子串