Ahri-珊
JS简介
- Web浏览器语言
- 弱类型语言
基本(简单)数据类型
1.Number
64位浮点数,没有整型之分(避免了短整型溢出问题)。 指数部分全为1、小数部分非零表示NaN。NaN不等于任何值包括自己,只能用isNaN(number)检测。
2.String
JS中所有字符都是16位的。
3.Boolean
false, undefined, null, ‘’, 0, NaN值为假,其余都为真。
4.undefined
5.null
6.symbol
复杂数据类型Object
对象通过引用来传递。对象字面量产生的对象连接到Object.prototype。
var a = { x: 1, y:2 };
var b = a;
b.z = 3;
console.log(a.z); // 3
原型继承(hasOwnProperty不会检查原型方法)
var Foo = function () {
this.x = 1;
this.y = 2;
};
var a = new Foo();
var b = {};
b.prototype = a;
a.z = 3;
a.m = 5;
b.n = 6;
console.log(a, b);
// a:{x: 1, y: 2, z: 3, m: 5}
// b:{prototype: Foo, n: 6}
console.log(b.hasOwnProperty('m')); // false
console.log(b.hasOwnProperty('n')); // true
JS基本理解
理解JS的变量在内存中的具体存储形式并根据此理解作用域、垃圾回收机制和闭包
https://simmin.github.io/2016/10/10/some-js-concept/
类型比较(==)
同类型比较:
-
基本类型:
比较值是否相等,注意:
1.任何两个Symbol类型数据都不等
2.使用new方法创建的基本数据是装箱后的object对象。
例子:
‘a’ == new String(‘a’) (true),
‘a’ === new String(‘a’) (false),
‘a’ === new String(‘a’).valueOf() (true)
-
引用类型: 引用对象相同时相等。 例子:[] == [] (false)
不同类型比较:
不同类型会转换成相同类型比较。转换规则见下图:
正则
注意:正则表达式只能写在一行里,不允许换行
非捕获型分组 (?:…)
非捕获型分组可选 (?:…)?
捕获型分组 (…)
字符类 […]
范围符 -
字符类匹配一次或多次 […]+
除去…的字符类 [^…]
斜杠和杠需要加转义字符 写为\/ -
定义斜杠匹配次数0次或1-3次 \/{0,3}
正则练习题
需求:在分组1中匹配meta中author属性的值
源串:
<meta author="Zjmainstay" />
another author="Zjmainstay too"
预期:分组1得到Zjmainstay
正则:(/(author="([\w ]+)")/).exec()
函数
函数也是一个对象。函数对象连接到Function.prototype。Function连接到Object.prototype。每个函数对象有两个隐藏属性-函数上下文和实现函数行为的代码。
语句执行
按从上到下的顺序执行,通过条件语句、循环语句、强制跳转语句(break, return, throw)和函数调用改变执行序列。 document.write() 会导致html重新解析
Comments