JavaScript高级程序设计(第三版)学习笔记1-3章

第1章

1. 简介

JavaScript:专为网页交互设计的脚本语言,包含三部分

  • ECMAScript - 提供核心语言功能
    • 欧洲计算机制造商协会(ECMA,European Computer Manufacturers Association)
  • DOM - 文档对象模型,提供访问和操作网页内容的方法和接口
  • BOM - 浏览器对象模型,提供与浏览器交互的方法和接口

第2章

1. <script> 元素

  1. 在使用<script>嵌入Js代码时,不要在代码的任何地方出现</script>
	// 错误
	alert("</script>")
	// 正确
	alert("<\/script>")
  1. 延迟脚本 defer - 立刻下载js文件,但会在遇见</html>后执行
<script type="text/javascript" defer="defer" src="example1.js"></script>
<script type="text/javascript" defer="defer" src="example2.js"></script>
  1. 异步脚本async - 立刻下载,异步加载页面的其他内容「
    注:异步脚本不要在加载期间修改DOM
<script type="text/javascript" async src="example1.js"></script>
<script type="text/javascript" async src="example2.js"></script>

第3章

1.数据类型:

Undefined Null Boolean Number String Object

2. typeofUndefined

	typeof 95			//	Number
	typeof(null)  // Object
	
    var age
    typeof age    //  undefined
    age == undefined //  true
    typeof mes;   //  未进行声明的变量结果也是 undefined  
	
	undefined == null	// true

3.Number

  1. 浮点数注意事项
    // 浮点数的最高精度是17位小数
    // 0.1 + 0.2 的结果是 0.30000000000000000000004
    // 因此不能使用
    // if (0.1 + 0.2 == 0.3)
  1. isFinite
    var res = Number.MAX_VALUE + Number.MAX_VALUE;
    isFinite(res);  //  false
  1. NaN - 非数值
    NaN ==  NaN;    //  false   与任何值都不相等,包括自己本身
    isNaN(NaN);     // true
    isNaN(10);      // false
    isNaN("10");    // false
    isNaN("blue");  // true 不能转换为数值类型
    isNaN(true);        // false    可以转换为1
  1. 数值转换

parse* 会忽略字符串的空格,直到找到第一个非空字符,如果不是数字或者负号 返回NaN

Number("hello") // NaN
Number("")  // 0
Number("000011")    // 11
Number(true)    //  1
// 可以接受第二个参数( 以几进制解析)
parseInt("123blue")     //  123
parseInt("")        //  NaN
parseInt("22.6")    //  22
parseInt("AF", 16)  //  175
parseInt("0xAF", 16)  //  175
parseInt("AF")  //NaN
// 不可接受第二个参数
parseFloat("1234aa")  //1234    整数
parseFloat("22.5")      //22.5
parseFloat("22.3.4.5")  //22.3
parseFloat("3.125e7")   //3125000

4. 位操作

  1. ECMAScript 中的所有整数都以 64 位存储,位操作不直接操作 64 位,而是先把其转为32,处理完再转回64。
  2. 前31位用来表示数值,32位表示符号
    • 正数: 二进制码
    • 负数: 二进制补码
      (1)求这个数的绝对值的二进制码
      (2)求反码 - 0替换为1, 1替换为0
      (3)反码加1
  3. &
  4. |
  5. ^ 异或 相同(1,1)为0, 不同(1, 0)为1
  6. << 左移 不会影响符号位
  7. >> 有符号右移
  8. >>> 无符号右移

5. label 语句

可用来退出多重循环

        var num = 0;
        out:
        for (let i = 0; i < 10; i++) {
            for (let j = 0; j < 10; j++) {
                if(i==5 && j==5){
                    break out;
                }
                num++;
            }    
        }
        console.log(num);	//	55

6.函数

  1. 所有的参数传递都是值, 不存在引用传递
  2. js函数没有重载,但是函数声明参数和调用时的参数不用对应,可以通过arguments来获取传过来的参数
        function doAdd(){
            if (arguments.length == 1){
                return arguments[0]
            }else if(arguments.length == 2){
                return arguments[0] + arguments[1]
            }
        }

        console.log(doAdd(3));      //  3
        console.log(doAdd(3, 3));       //  6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值