您的位置:首页 > Web前端 > JavaScript

JavaScript高级程序设计,对书中一些不熟悉的地方做得笔记

2015-05-04 21:12 501 查看
<script>使用注意

1、在包含外部的JavaScript文件时,必须将src属性设置为相应文件的的URL。这个文件可以是与包含它的页面位于同一个服务器上的文件,也可以是其他任何域中的文件。

2、所有的<script>元素都会按照它们在页面中出现的先后顺序以此被解析。在不使用defer和async属性的情况下,只有解析完前面的<script>元素中的代码之后,才开始解析后面的<script>元素中的代码。(defer属性只适用于外部脚本文件,HTML5会忽略给嵌入脚本设置的defer属性,IE4~IE7还支持defer属性,使用defer属性可以让脚本在文档完全呈现之后再执行。)

(HTML5定义了async属性,它只适用于外部脚本文件,指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。所以不能保证脚本执行顺序。)

提示:把延迟脚本放在页面的底部仍然是最佳的选择。

3、由于浏览器会先解析完不使用defer属性的<script>元素中的代码,然后再解析后面的内容,所以一般会把<script>元素放在页面最后。

4、使用<noscript>元素可以指定在不支持脚本的浏览器中显示替代的内容,启用则不会显示。

变量

1、对未初始化的变量或者未声明的变量执行typeof操作符会返回undefined值。

2、Number类型

    ①八进制字面量在严格模式下是无效的,会导致支持的JavaScript引擎抛出错误;

    ②永远不要测试某个特定的浮点数字(浮点数的精度问题);

3、NaN

NaN,即非数值,是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回的情况,isNaN()函数可用来判断

    

        alert(NaN == NaN);       //false

        alert(isNaN(NaN));       //true

        alert(isNaN(10));        //false ?10 is a number

        alert(isNaN("10"));      //false ?can be converted to number 10

        alert(isNaN("blue"));    //true ?cannot be converted to a number

        alert(isNaN(true));      //false ?can be converted to number 1
数值转换问题

Number()转换

 var num1 = Number("Hello world!");  //NaN

        var num2 = Number("");              //0

        var num3 = Number("000011");        //11

        var num4 = Number(true);            //1

parseInt()函数

        var num1 = parseInt("1234blue");    //1234

        var num2 = parseInt("");            //NaN

        var num3 = parseInt("0xA");         //10 - hexadecimal

        var num4 = parseInt(22.5);          //22

        var num5 = parseInt("70");          //70 - decimal

        var num6 = parseInt("0xf");         //15 ?hexadecimal

        var num7 = parseInt("070");         //56 -八进制数

           //指定基数

           var num1 = parseInt("10", 2);         //2 ?parsed as binary

        var num2 = parseInt("10", 8);         //8 ?parsed as octal

        var num3 = parseInt("10", 10);        //10 ?parsed as decimal

        var num4 = parseInt("10", 16);        //16 ?parsed as hexadecimal

parseFloat()函数

    //与parseInt的区别在于parseFloat会忽略前导的零

        var num1 = parseFloat("1234blue");    //1234 - integer

        var num2 = parseFloat("0xA");         //0

        var num3 = parseFloat("22.5");        //22.5

        var num4 = parseFloat("22.34.5");     //22.34

        var num5 = parseFloat("0908.5");      //908.5

        var num6 = parseFloat("3.125e7");     //31250000

toString()

//几乎每个值都有toString()方法,除了null和undefined

        var age = 11;

        var ageAsString = age.toString();    //the string "11"

        var found = true;

        var foundAsString = found.toString(); //the string "true"

        var num = 10;

        alert(num.toString());       //"10"

        alert(num.toString(2));      //"1010"

        alert(num.toString(8));      //"12"

        alert(num.toString(10));     //"10"

        alert(num.toString(16));     //"a"

//在不知道要转换的值是不是null或defined的情况下可以用转型函数String()

 

        var value1 = 10;

        var value2 = true;

        var value3 = null;

        var value4;

        

        alert(String(value1));     //"10"

        alert(String(value2));     //"true"

        alert(String(value3));     //"null"

        alert(String(value4));     //"undefined"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 前端 脚本