A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不二晨 金牌黑马   /  2019-1-18 10:21  /  759 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

2.1 script中定义的属性

async:可选。
表示应该立即下载脚本,但是不应该妨碍页面中的其他操作。
只对外部脚本文件有效。
charset:可选。 表示通过src属性指定的代码的字符集。
defer: 可选。
表示脚本可以延迟到文档完全被解析和显示之后再执行。
只对外部脚本文件有效。
src:可选。
表示包含要执行代码的外部文件。
2.2 使用script元素的两种方式

直接在页面中嵌入JavaScript代码和包含外部Javascript文件。
无论如何包含代码,只要不存在defer和async属性,
浏览器都会按照script元素在页面中出现的先后顺序对他们进行解析。
defer注意点:
<script type="text/javascript" defer="defer" src="example1.js"> <script type="text/javascript" defer="defer" src="example2.js">
这两个延迟脚本不一定会按照顺序执行。

2.3 CDATA片段

<script type="text/javascript">
//<![CDATA[
function compare(a,b){
    if(a < b){
        alert("a is less than b");
    }else if(a > b){
        alert("a is greater than b");
    }else{
        alert("a is equal to b");
    }
}
//]]>
</script>

目的:解决浏览器的兼容
2.4 文档模式

混杂模式:会让IE的行为与IE5相同,
标准模式:则让IE行为更接近标准行为。
这两种模式主要影响css内容的呈现,
但在某些情况下会影响JavaScript的执行。
2.5 noscript元素

其中的内容会在一下两种情况下显示:
浏览器不支持脚本
浏览器支持脚本,但是脚本被禁用。
3.1 严格模式

ECMAScript 5引入了严格模式,是为js定义了一种不同的解析
与执行模型。在严格模式下,ECMAScript3中的一些不确定的行为将得到处理,
而且对某些不安全操作也会抛出错误。
3.2 变量

ECMAScript的变量是松散类型的,
所谓松散类型就是可以用来保存任何类型的数据。
局部变量

function test(){
    var message = "hi";  //局部变量
}

alert("message");   //错误

- 全局变量

function test(){
   message = "hi";  //全局变量
}

alert("message");

3.3 数据类型

ECMAScript有5种简单数据类型
Undefined ,Null,Boolean,NUmber,String
还有一种复杂数据类型Object(一组无序的名值对组成).
ECMAScript不支持任何创建的自定义类型的机制,
所有值最终都将是上述6种数据类型之一。
使用tyoeof操作符可以检测 给定变量的数据类型:
返回的字符串有:undefined, string,boolean,number,object,function
Undefined类型只有一个值undefined。在使用
var 声明变量但是未对其初始化时,这个变量的值就是undefined.
undefined值与尚未定义的变量之间的区别:


       var message; //这个变量声明后默认取得了Undefined值

      // var age;

       alert(message); //Undefined

       alert(age); //产生错误


对于没有声明的变量,只能执行一项操作,即使用typeof操作符检测
其数据类型。而且对未初始化和未声明的变量执行typeof操作都会返回
undefined值。
NUll类型:是第二个只有一个值的数据类型,这个特殊值为null.
null值表示一个空对象指针。使用typeof操作符检测null值会
返回object。uundefined值是派生自null值。所以对他们的相等性测试
null == undefined 返回true.
Boolean类型:只有true和false.可以使用Boolean()将一个值转换为
其对应的Boolean值。
javascript表示的数值是有范围的,如果,某次计算的结果
,得到了一个超出JavaScript数值范围的值,那么这个数值被自动转化为
特殊的Infinity值。如果某次计算返回正或负的Infinity值,那么
该值将无法继续参与下次的计算。因为infinity不是能够参与计算的数值。
要想确定一个数值是否为有穷的,可以使用isFinite()函数。
NaN类型:任何涉及NaN的操作,都会返回NaN,NaN与任何值都不相等,包括NaN本身。
通过isNaN()函数,确定这个参数是否“不是数值”。
将非数值转换为数值的函数:
Number():可以用于任何数据类型
parseInt(),parseFloat():用于把字符串转换成数值。
这两个都是从第一个字符开始解析每一个字符。而且也是
一直解析到字符串末尾。
在使用parseInt()函数时,ECMAScript3和5之间有分歧
所以在转换时,应该明确指定基数。
例:var num1 = parseInt(“10”,8);
字符串

ECMAScript表示的字符串是不可变的。即:字符串
一旦创建,它们的值就不能改变。
将一个值转化为字符串的方法:
第一种:使用toString()(除了Null和Undefined)方法。可以传入基数。
第二种:使用String()函数。其转换规则为:
如果值有toString()方法,则调用该方法,
如果值为null,则返回"null"
如果值为undefined,则返回"undefined".
3.4理解函数参数

ECAMScript函数的参数与大多数其他语言中函数
的参数也不同。
ECMAScript函数不介意传递进来多少个参数,
也不在乎传进来参数是什么数据类型。
其内部是用一个数组来表示的,函数接收
到的始终都是数组,而不管这个数组中包含哪些参数。
在函数体内可以通过arguments对象来访问这个
参数数组,从而获取传递给函数的每一个参数。
函数例子:

    function doAdd(num1, num2){
        argumenys[1] = 10;
       alert(arguments[0] + num2);
    }

每次执行这个doAdd()函数都会重写第二个参数,
将第二个参数值修改为10,因为arguments()对象中
的值会自动反映到对应的命名参数。所以修改argument[1],
也就修改了num2,但是读取这两个值并不会访问相同的内存空间。
他们的内存空间是独立的,但是值会同步。
同时这种影响是单向的;修改命名参数不会改变arguments中对应的值。
---------------------
【转载,仅作分享,侵删】
作者:藤乡
原文:https://blog.csdn.net/qq_34413756/article/details/86479405


2 个回复

倒序浏览
奈斯,感谢分享
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马