第一篇Blog

周记

这里是刚入门的前端小萌新一枚,本博客暂时只是用来总结自己平时所学到的一点小知识。希望,能鞭策自己努力进步!上一周看了红宝石的前三章(JavaScript高级程序设计 第三版),状态不太好,所以看得比较慢。不过,不管看了多少,也希望自己能够好好总结一下,从中获取的新的知识点。

第一章 JavaScript简介

本章节主要就是介绍了JavaScript的发展历史,JavaScript包含了哪几个部分以及JavaScript的各个版本在各个主流浏览器中的支持情况。

小结

JavaScript是一种专为与网页交互而设计的脚本语言,由三个部分组成:

  • ECMAScript,由ECMA-262定义,提供核心语言功能;
  • 文档对象模型(DOM),提供访问和操作网页内容的方法和接口;
  • 浏览器对象模型(BOM),提供与浏览器交互的方法和接口。

第二章 在HTML中使用JavaScript

本章节主要是介绍如何在HTML中使用JavaScript。

小结

我们需要是用<script>标签来将JavaScript嵌入到HTML页面中,或者引入外部的JavaScript文件。一些注意点:

  • 在使用内嵌的JavaScript的时候,不要在任何地方出现</script>,可以通过转义字符解决<\/script>
  • HTML是按顺序从上到下解析的,所以<script>标签放在<body>标签内最后的位置,也就是</body>之前;
  • 使用defer属性可以让脚本在文档完全呈现后再执行,兼容性问题,不建议使用;
  • 使用async属性可以让脚本异步执行,不会等待其他脚本,也不会阻塞文档的呈现,不能保证异步执行的脚本会按顺序执行;
  • <noscript>可以使得不支持脚本的浏览器中显示代替的内容;
  • 外部脚本可被浏览器缓存。

在XHTML中,<字符被解析为一个新的标签开始,所以JavaScript在XHTML中的使用可以如下:

<script>
//<![CDATA[
  var a = 1, b = 2;
  if (a < b) {
    console.log('true');
  }
//]]>
</script>

注释掉CDATA是为了可以兼容不支持XHTML的浏览器。

第三章 基本概念

本章节主要是介绍了JavaScript的语法、数据类型、流控制语句以及函数等基本概念。由于涉及的知识点较多,本文只列举出一些,个人觉得重要的,或是容易遗忘的知识点。

知识点

  • ECMAScript中有5中简单的数据类型:undefined、null、boolean、number、string。以及一种复杂的数据类型——Object。

ECMAScript不支持任何创建自定义类型的机制,所有的值最终都是上述6种数据类型之一。

  • 转换为false的值:”“(空字符串)、0和NaN、null、undefined。
  • JavaScript采用IEEE754格式来表示整数和浮点数值,所以浮点数值的计算会产生误差。
  • Infinity是无穷大
  • 任何涉及NaN的操作都会返回NaN,且NaN不等于任何数,包括它本身。
  • Number(null)返回0,Number(undefined)返回NaN。
  • parseInt(“”)返回NaN,而Number(“”)返回0。
  • parseInt(666, 10),第二个参数是转换时的基数。
  • 除了null和undefined以外,所有的数据类型都有toString()方法。toString()方法可以传入一个参数,表示输出数值的基数。
  • Object的每个实例都具有下列属性和方法:constructor、hasOwnProperty(propertyName)、isPrototypeOf(Object)、propertyIsEnumbrable(propertyName)、toLocalString()、toString()、valueOf()。
  • 宿主对象(如,window)可能会也可能不会继承Object。
  • 一元加操作符对非数值的时候会像Number()转型函数一样,对其转换(如,+ ‘10’会返回整数10)。
  • 同时使用两个逻辑非操作符(!!)与Boolean()转换结果相同。
  • 逻辑与(&&)和或(||)操作符都是短路操作符,而且在有一个操作数不是布尔值的情况下,不一定返回布尔值。

自己总结一下,逻辑与(&&)的时候,第一个是true或者转化结果为true的时候,返回第二个数。第一个数为null、NaN、undefined的时候,返回null、NaN、undefined。逻辑或(||)的时候,第一个是true或者转化结果为true的时候,返回第一个数,否则返回第二个。

  • ECMAScript中不存在块级作用域,因此在循环内部定义的变量在外部也可访问到。
  • 建议在使用for-in循环之前,先检测确认该对象的值是不是null或undefined。
  • 虽然觉得with的用法很厉害,但是会导致性能下降,所以当然不推荐使用。
  • switch语句中可以使用任何数据类型,甚至每个case的值可以是变量或是表达式。
var a = 26;
switch (true) {
  case a < 0 : alert('Less than 0'); break;
  case a >= 0 && a <= 100: alert('Between 0 and 100'); break;
  default: alert('More than 100');
}

上面程序结果是第二个。switch语句在比较值的时候使用的是全等操作符。

  • 传入的参数都存储在类数组对象arguments中,未传入的参数值为undefined。

  • ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值