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

<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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值