第2章

1、<script src='script.js' type='text/javascript'></script>中,只要不包含defer和async属性,浏览器都会按照<script>元素在页面的出现顺序对它们依次进行解析。

2、defer属性     <script>中的defer属性的用途是表明脚本在执行时不会影响页面的构造,即,脚本会被延迟到整个页面都解析完毕后在运行。所以设置了defer属性就是相当于告诉浏览器立即下载但延迟执行。

defer=“defer”;

3、async属性   <script type="text/javascript" async src="script.js"></script>指定async属性的目的是不让页面等待脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。

4、嵌入外部script的好处:a、可维护性;b、可缓存,如果有两个页面都使用同一个文件,那么这个文件只需要下载一次,所以,最终结果就是能够加快页面加载的速度;c、适应未来。

第3章

1、在脚本中添加"use strict";  启用严格模式;

2、数据类型:5中简单数据类型(也称为基本数据类型):Undefined Null Boolean Number String。1中复杂数据类型---Object。

3、typeof操作符---“object”——如果这个值是对象或者null;“function”——如果这个值是函数。typeof是一个操作符而不是一个函数。

4、undefined  对于未声明的变量只能执行一项操作,即使用typeof操作符检测其数据类型。

var message;

//未声明
//var age;
alert(message); //undefined
alert(age); //产生错误 alert(typeof message); //undefined
alert(typeof age); //undefined

5、Null    null表示一个空对象指针,所以使用typeof操作符检测null值时会返回‘object’。实际上,undefined是派生自null值的,所以alert(undefined == null);  //true;

只要意在保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值。

6、Boolean  要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean();

7、Number   八进制字面值的第一位必须是零(0),八进制数字序列(0—7)。如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析。

var num1 = 070;   //八进制的56;
var num2 = 79; //无效的八进制数值----解析为79;

十六进制字面值前两位必须是0x;

进行算术计算时,所有的八进制和十六进制表示的数值最终都将被转换成十进制数值。

浮点数值的最高精度是17为小数。

8、NaN    即非数值  是一个特殊的数值。首先, 0除以0返回NaN,正数除以0返回Infinity,负数除以0得-Infinity;其次,NaN与任何值都不相等,包括本身。

9、String类型  字符串特点:字符串是不可变的,也就是,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首次要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

var lang = "Java";
lang = lang + "Script"; 操作过程如下:首先创建一个能容纳10个字符的新字符串,然后在这个字符串中填充“Java”和“Script”,最后异步是销毁原来的字符串“Java”和字符串“Script”;

关于toString()和String():toString()数值、布尔值、对象和字符串值都有这个方法;但是undefined和null没有这个方法。多数情况下,调用toString()方法不必传递参数

var num = 10;
num.toString(2); //"1010";
num.toString(8); //"12";
num.toString(16); //"a";

不知道要转换的值是不是null和undefined的情况下,可以使用String():1、如果值有toString()方法,则调用该方法并返回相应的结果;2、如果是null返回”null”,undefined返回“undefined”

10、布尔操作符

逻辑与&&:逻辑与操作属于短路操作,即如果第一个操作数能够决定结果,那么不会再对第二个操作数求值

逻辑或||:如果第一个操作数的求值结果为true,就不会对第二个操作数求值了。

11、相等和不相等(==  ===  !=  !==):如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,true转换为1;

如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值。

12、理解参数(arguments):(1)即便定义的函数只能接收两个参数,在调用这个函数时也未必一定要传递两个参数,可以传递一个、两个、三个甚至不传递参数,原因是参数在函数内部是用一个数组来表示。实际上,在函数体可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。其实,arguments对象只是与数组类似,可以使用方括号语法访问它的每一个元素;(2)arguments对象可以与命名参数一起使用

function doAdd(num1,num2){
if(arguments.length == 1){
alert(num1 + 10);
} else if(arguments.length == 2){ alert(arguments[0] + num2);
} }

(3)arguments的值永远与对应命名参数的值保持同步

function doAdd(num1,num2){
arguments[1] = 10;
alert(arguments[0] + num2); }
这并不是说读取这两个值会访问相同的内存空间,arguments[1] 和 num2 的内存空间的独立的,但是它们的值是同步的。如果值传入一个参数,那么arguments[1]设置的值不会反应到命名参数中。
没有传递值的命名参数将自动被赋予undefined值。

13、如果定义了两个名字相同的函数,则该名字只属于后者定义的函数。

最新文章

  1. Android:StatFs类 获取系统/sdcard存储空间信息
  2. vue之watch用法
  3. C#之键值对
  4. JavaScript学习总结【5】、JS DOM
  5. js返回值
  6. 定制ToolChain for ARM
  7. erlang 常用的计算长度函数
  8. [转载]ArchLinux 添加 archlinuxcn 源 密钥错误
  9. 【java】实现一个简单的正则:判断一个字符串是否全由数字组成
  10. CentOS6.x机器安装Azure CLI2.0【2】
  11. Django Channels 入门指南
  12. hadoop2-elasticsearch的安装
  13. java拦截处理System.exit(0)
  14. Scala学习(九)---文件和正则表达式
  15. IdentityServer4 接口说明
  16. Perl中的正则表达式(五)
  17. 使用snmp4j实现Snmp功能(二)
  18. Kotlin 初级读本
  19. OpenERP学习过程1
  20. docker安装MySQL 8.0及初始化错误处理

热门文章

  1. Cannot call sendRedirect()/forward after the response has been committed的问题
  2. 17972 Golden gun的巧克力
  3. P1936 水晶灯火灵
  4. Ubuntu16下查看CPU、内存和磁盘相关信息
  5. 回顾PMP考试
  6. PMP项目管理学习笔记(4)——项目整合管理
  7. javaee 第11周
  8. subprocess使用小方法
  9. Matlab 图像转极坐标系
  10. Mysql is not allowed to connect mysql server