重温Javascript第一章
一.script标签
script标签有6个属性,其中一个废弃,五个可选。
按照传统的写法,<script>的标签都是放在<head>元素中,但是在<head>中包含所有的javascript的文件,也就意味着要在所有的javascript的代码被下载,解析和执行后才能呈现页面的内容。
所以现在的大多推荐把javascript写在</body>的前面。在页面内容呈现完之后再读javascript代码。
PS:当然还是写在头部也能实现这个功能,我们要用到script中一直被我们忽略的属性"defer"。写成这样<script defer="defer"></script> 就行。这样页面就会在遇到</html>标签后才开始执行<script>元素。!重点:defer 属性只能用于外部脚本。同时代码中不要出现"</script>"这样的字符串,否则会加载错误。
二.数据类型
ECMAScript中有5种基本数据类型:Undefined、Null、Number、Boolean、String。还有一种复杂的数据类型Object。
其中Undefined,Null都是只有一个值的数据类型。
实际上undefined值是派生自null值的,所以
1 alert(null == undefined); // ture
但是null的用处比undefined要多点,在定义一个变量准备保存对象时,最好将变量初始化为null值。因为从逻辑上来讲,null是一个空对戏那个指针!
1 var temp = null; 2 alert(typeof temp); // object
Boolean类型就没什么好说的了,注意true,false大小写问题,大写的不识别!
Number类型:
有个深坑。。注意:浮点数的最高精度为17位,但是在计算过程中精确度远远不及整数。所以0.1+0.2 ==0.3 是错误的。它是0.30000000000000004. 所以永远不要测试某个特定浮点数的值!
NaN是一个特殊的数值,它与任何数都不相等,包括它本身。任何涉及它的操作都会是NaN 例如NaN/2返回NaN.
String 有一个点,就是它有个length属性,可以返回字符串的长度 ,空格也包括。
var str = "this a str" alert(str.length) // 输出的是10
还有就是字符串的拼接,用+号来拼接。字符串是不可变的,字符串一旦创建,它的值就是不变的。通过+号拼接的时候是重新生成了新的字符串,旧的被销毁了。
Object类型:
ECMAScript中的对象就是一组数据和功能的集合,关于对象 我写过一篇初级的创建对象的细节.这里就不细讲了
Object几个属性很重要:
constructor:这个是保存用于创建当前对象的函数 Ps: 构造函数就是Object 创建对象的方法就有构造函数创建法。
hasOwnProperty : 判断属性是否在对象的实例中,而不是在原型中。Ps:原型的问题,建议去看原型链的图,很通俗。
isPrototypeOf(Object):检查这个传入的对象是否是当前对象的原型。
toString(),valueOf(): 前一个返回对象的字符串表示。后一个返回字符串,数值或布尔值表示。它们通常返回的是一样的。
还有一些不常用的,就不说了。
以后再讲对象。