js学习02

JavaScript 学习笔记

第一部分,取自文档·

  1. JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。

  2. document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。

    innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。

    innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。

  3. 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(ES6 引入了一种新的原始数据类型,表示独一无二的值。)。

    引用数据类型:对象(Object)、数组(Array)、函数(Function)。

  4. JavaScript 变量的生存期

    JavaScript 变量的生命期从它们被声明的时间开始。

    局部变量会在函数运行以后被删除。

    全局变量会在页面关闭后被删除。

  5. 空文本 + 数字得到的运算结果都是把数字转成字符串,无论文本有多少个空格。但是空格会计入长度。

  • 字符串和数字相加,数字转成字符串.

  • .数字和布尔值相加,布尔值 false 转成 0,true 转成 1

  • 字符串与布尔值相加,布尔值转化成字符串。

  • 数字与 null(空值) 相加,null 转化为数字 0:

  • 字符串与 null(空值) 相加,null 转化为字符串:

  • 如果 % 左边的操作数是正数,则模除的结果为正数或零;

  • 如果 % 左边的操作数是负数,则模除的结果为负数或零。

  1. ===绝对相等

  2. for in 循环不仅可以遍历对象的属性,还可以遍历数组。

  3. for 循环除了使用 in 方式来循环数组,还提供了一个方式: of , 遍历数组时更加方便。

    for...of 是 ES6 新引入的特性。它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。

    let iterable = "boo";

    for (let value of iterable) {
    console.log(value);
    }循环字符串
  4. break 语句用于跳出循环。

    continue 用于跳过循环中的一个迭代。

  5. (1)undefined:是所有没有赋值变量的默认值,自动赋值。

    (2)null:主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址。

  6. 当使用完一个比较大的对象时,需要对其进行释放内存时,设置为 null。

    垃圾回收站

    它是专门释放对象内存的一个程序。

    • (1)在底层,后台伴随当前程序同时运行;引擎会定时自动调用垃圾回收期;

    • (2)总有一个对象不再被任何变量引用时,才释放。

  7. JavaScript 数据类型

    在 JavaScript 中有 5 种不同的数据类型:

    • string

    • number

    • boolean

    • object

    • function

    3 种对象类型:

    • Object

    • Date

    • Array

    2 个不包含任何值的数据类型:

    • null

    • undefined

     

  8. 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。正则表达式是由一个字符序列形成的搜索模式。

    /正则表达式主体/修饰符(可选) var patt = /runoob/i

    if(isNaN(x)) throw "值不是一个数字";即NaN可以用来判断一个数是否是数字。

  9. 严格模式通过在脚本或函数的头部添加 "use strict"; 表达式来声明。

    为什么使用严格模式:

    • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

    • 消除代码运行的一些不安全之处,保证代码运行的安全;

    • 提高编译器效率,增加运行速度;

    • 为未来新版本的Javascript做好铺垫。

  10. ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: letconst

    let 声明的变量只在 let 命令所在的代码块内有效。

    const 声明一个只读的常量,一旦声明,常量的值就不能改变。

  11. 箭头函数

    // ES5
    var x = function(x, y) {
    return x * y;
    }
    // ES6
    const x = (x, y) => x * y;

    使用 const 比使用 var 更安全,因为函数表达式始终是一个常量。

  12. 闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。

    闭包就是子函数可以使用父函数的局部变量,还有父函数的参数。

  13. 绝对不要在文档(DOM)加载完成之后使用 document.write()。这会覆盖该文档。

  14. 事件句柄是指事件发生时要进行的操作。

  15. 事件冒泡或事件捕获?

    事件传递有两种方式:冒泡与捕获。

    冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。

    捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。

  16. window.open() - 打开新窗口

    window.close() - 关闭当前窗口

    window.moveTo() - 移动当前窗口

    window.resizeTo() - 调整当前窗口的尺寸

  17. setInterval() - 间隔指定的毫秒数不停地执行指定的代码。

    setTimeout() - 在指定的毫秒数后执行指定代码。

    clearInterval() 方法用于停止 setInterval() 方法执行的函数代码。window.clearInterval(intervalVariable)

    clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。

  18. Cookie 用于存储 web 页面的用户信息。当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。

    Cookie 的作用就是用于解决 "如何记录客户端的用户信息":

  19.  

  20.  

  21.  

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/dys6/p/11303830.html