js高级程序设计

defer 异步脚本,脚本延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。按顺序执行脚本。但在实际情况下,并不一定会按照顺序执行
最好只有一个延迟脚本。
支持H5的浏览器会忽略给脚本设置 defer 属性
async 异步脚本,不保证按脚本的先后顺序执行。
异步脚本一定会在页面的Load事件前执行。

IE10+支持严格模式

function test (){
     a = 12;    //没有var, a 是全局变量, 不推荐  严格模式下会报错 ”use strict"
}
test();
console.log(a);  // 12

var num = 12;  // 推荐加;
if(a){
   return true;   //  推荐加{}
}

5种基本数据类型 undefined null boolean number string
1种复杂数据类型 object          array function这两个呢?

typeof   undefined  null

console.log(typeof null);  // object
console.log(typeof 333);   // number
function abc () {
  return 5;
}
console.log(typeof abc);  // function

// undefined
var a;   // 默认会有一个 undefined值 
console.log(typeof a);  // undefined
console.log(typeof name);  // undefiend    不定义也是 Undefiend
var b = undefined
console.log(b === undefined);  // true
console.log(typeof undefined); // undefined

// null
var a = null;  // 空对象指针
console.log(typeof a); // object

// 如果定义的变量b 准备用于保存对象,那么var b = null  感觉没啥用
var b = null
b = {"name": ‘kang123‘}
if (b) {  // if(b!= null)
  console.log(b.name);
}
console.log(null === undefined);  // false  类型不一致
console.log(null == undefined);   //  true   undefined 值是派生null值的 ,ECMA-262 规定两者相等

返回false

var a = NaN
if(a){
  console.log(‘ok‘);
}else{
  console.log(‘error‘);  // undefined null 0 false ‘‘ NaN
}
时间: 2024-11-14 08:04:36

js高级程序设计的相关文章

<JS高级程序设计3>_PART3

1.ECMAScript中所有数都以IEEE-754 64位格式存储,但位操作符不直接操作64位的值.是先64位转换成32位的整数,再操作,得到结果再转成64位. 2.首位是符号位.之后的31位代表整数的值. 3.用toString(2)打印二进制,得到的是被处理过的二进制. 4.按位非(NOT)~,数转成二进制,取反.相当于把操作数先变负再-1; 5.按位与(AND)&,两个数的二进制,有一个0结果就是0,两个都是1才为1. 6.按位或(OR)|,有一个1结果为1,都是0才为0. 7.按位异或

<JS高级程序设计3>_PART4

1.基本数据类型:Undefined,null,Number,String,Boolean.引用数据类型:保存在内存中的对象. 2.JS不允许直接访问内存中的位置,不能直接操作对象的内存空间.所以操作对象时,实际上是操作的对象的引用,而不是实际的对象. 3. var num1 = 1; var num2 = num1; 一个基本类型的变量向另一个赋值时,执行了复制操作,两个变量互不影响. var obj1 = new Object(); var obj2 = obj1; obj1.age = 2

读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

读书笔记 - js高级程序设计 - 第十三章 事件 canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好 有时候即使浏览器支持,操作系统如果缺缺乏必要的绘图驱动程序,则浏览器即使支持了也没用   <canvas> var drawing = document.getElementById("drawing"); if( drawing.getContext ){ drawing.getContext("2d"

js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定

js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名.作为事件处理程序的函数和一个布尔值.最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序:如果是false,表示在冒泡阶段调用事件处理程序. 要在按钮上为click事件添加事件处

JS高级程序设计拾遗

<JavaScript高级程序设计(第三版)>反反复复看了好多遍了,这次复习作为2017年上半年的最后一次,将所有模糊的.记不清的地方记录下来,方便以后巩固. 0. <script>元素属性 async表示立即下载脚步,但不应该妨碍页面中其他操作: defer表示延迟到文档完全被解析和显示之后再执行.这两个属性都仅适用于外部脚步,而且现实中脚步不一定按顺序执行.指定async属性的目的是不让页面等待脚步下载和执行. 最好只包含一个延迟脚本,把延迟脚本放在页面最底部仍然是最佳选择.

JS高级程序设计(1-3章笔记)

第一章    JavaScript简介 1.1    JavaScript简史 1995.02- 公司:Netscape 主要人物:就职于Netscape的Brendan Eich(布兰登.艾奇) 事件:为Netscape Navigator 2开发一种名为LiveScript的脚本语言 1995.02-前夕 公司:Netscape 事件:临时将LiveScript改名为JavaScript 1995.02+ JavaScript1.0获得巨大成功 1996.08 公司:微软 IE3加入名为JS

《JS高级程序设计》之二

1.JS的基本数据类型有 Number , String , Number , Null , Undefined , Boolean ,还有一种复杂数据类型Object,function 和 array 是Object的一种派生类型. 2.typeof 用来判断给定变量的数据类型, "undefined"--这个值未定义 "boolean"--这个值是布尔值 "string"--这个值是字符串 "number"--这个值是数字

JS高级程序设计1-2章

1.一个完整JS的实现应该由下列三个不同的部分组成: (1)核心(ECMAScript) (2)文档对象模型(DOM) (3)浏览器对象模型(BOM) 2.使用<script>元素的方式有两种:直接在页面中嵌入JS代码和包含外部的JS文件 记住:不要在代码中的任何地方出现"</script>"   如必须出现,解决方法:通过转移字符“\”解决   “<\/script>” 如果要通过<script>元素来包含外部JS文件,那么src属性就

读书笔记 - js高级程序设计 - 第十章 DOM

文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node.ATTRIBUTE_NODE 属性 Node.TEXT_NODE 文本元素 Node.CDATA_SECTION_NODE Node.ENTITY_REFERENCE_NODE Node.ENTITY_NODE Node.PROCESSING_INSTRUCTION_NODE; Node.COMMENT_NOD

JS高级程序设计第三版——JavaScript简介

JavaScript简史 JavaScript由Netscape(网景)公司在1995年发布,最开始的主要目的是处理以前由服务器端语言负责的一些输入验证操作,以便提高用户体验,后来就慢慢的发展为一门强大的编程语言.作者建议:要想全面理解和掌握JavaScript,关键在于弄清楚它的本质.历史和局限性. JavaScript实现 一个完整的JavaScript实现=核心(ECMAScript)+文档对象模型(DOM)+浏览器对象模型(BOM). 1.ECMAScript:由ECMA-262定义的E