美文网首页
JavaScript 基础部分

JavaScript 基础部分

作者: Love小六六 | 来源:发表于2017-06-02 15:54 被阅读0次
  1. JavaScript是一种专为与网页交互而设计的脚本语言,由三部分组成
  • ECMAScript,提供核心语言功能
  • 文档对象模型(DOM),提供访问和操作网页内容的方法和接口
  • 浏览器对象模型(BOM),提供与浏览器交互的方法和接口
  1. sciprt标签
<script async  charset defer  src  type="text/script"></script>

async:表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。(让页面等待两个脚本下载和执行,从而异步加载页面其他内容)
charset:表示通过 src 属性指定的代码的字符集
defer:表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效(浏览器立即下载,延迟执行)
src:表示包含要执行代码的外部文件,指向相应文件的 URL,而这个文件既可以是与包含它的页面位于同一个服务器上的文件,也可以是其他任何域中的文件
type:表示编写代码使用的脚本语言的内容类型
只要不存在 defer 和 async 属性,浏览器都会按照<script>元素在页面中出现的先后顺序对它们依次进行解析。在文档的<head>标签中包含所有的JavaScript文件,意味着必须等到全部 JavaScript 代码都被下载、 解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容),因此,一般讲script标签的引用放在body标签内,这样在解析包含的 JavaScript 代码之前,页面的内容将完全呈现在浏览器中

  1. JavaScript文件外部引用优点
  • 可维护性
  • 可缓存(多个页面引用同个文件,该文件只需下载一次,加快了页面加载速度)
  1. 数据类型
    Undefined Number Boolean String Null Object 6种数据类型
  • typeof 返回数据类型
  • undefined类型 :使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined
  • null类型:null 值表示一个空对象指针,如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null
    *数值转换:Number()、 parseInt()、 parseFloat()->可带第二个参数,表示进制,如parseInt('AF',16)
  1. js 基本类型值和引用类型值
    引用类型值是保存在内存中的对象,js不能直接操作对象的内存空间,而是操作对象的引用
    函数的参数是按值传递的
  • 检测类型
    typeof 确定变量是字符串、布尔值、数值等
    instanceof 判断它是什么类型的对象
  1. 环境
    在web浏览器中,全局执行环境被认为是window对象,因此所有全局变量和函数都是作为window对象的属性创建的。某个执行环境中,所有代码执行完毕后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁

小结之变量

  • 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中
  • 从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本
  • 引用类型的值是对象,保存在堆内存中
  • 包含引用类型值的变量实际上包含的并不是对象本身,而是一个指向该对象的指针
  • 从一个变量向复制另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象

小结之作用域

所有变量(包括基本类型和引用类型)都存在于一个执行环境(也称为作用域)当中,这个执行环境决定了变量的生命周期,以及哪一部份代码可以访问其中的变量

  • 执行环境分全局环境和函数执行环境
  • 每次进入一个新执行环境,就会创建一个用于搜索变量和函数的作用域链
  • 函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其父环境乃至全局环境
  • 全局环境只能访问在全局环境中定义的变量和函数,而不能直接访问局部环境中的任何数据
  • 变量的执行环境有助于确定应该何时释放内存

小结之垃圾回收

  • 离开作用域的值将被自动标记为可以回收,因此将在垃圾收集期间被删除(“标记清除”算法)
  • 解除变量的引用不仅有助于消除循环引用现象,对于垃圾回收也有好处。为了确保有效地回收内存,应该及时解除不再使用的全局对象、全局对象属性以及循环引用变量的引用(让对象=null,是让垃圾回收时可以回收该对象)

相关文章

网友评论

      本文标题:JavaScript 基础部分

      本文链接:https://www.haomeiwen.com/subject/rzhufxtx.html