以下内容是读书笔记,再一次温习JS好书:PPK谈JS

window.load=initializePage
addEventSimple('window','load',function(){})

load事件在页面被完成加载时触发,显然这正是我们初始化脚本所需要的。
问题是如果同时批量初始化,可能会发生替换,最后的赋值会替换前面的。

js
变量名,方法名等区分大小写
使用分号作为语句分隔符
注释是// /**/
代码块使用{}

undefined null
undefined:
你访问了一个对象不存在的属性或方法,
你访问一个没有赋值的变量

显示对象的数据类型:typeof
NaN not a number 表示非数字值
发生在试图把一个非数字的对象(字符串)转为转成数字的时候

JS处理字符串连接的优先级高于数学求和。

= == ===
== 比较运算符 返回布尔值 true or false

if(4)...
除了0和NaN之外的其他数字都转化为了true

=== 严格比较运算符
要求比较的两个对象值相等,数据类型也相同时才返回true
== 表示两个对象的值相等,数据类型可能不相同,如一个是数字一个是字符串
==== 表示丙个对象的是否是同一个, 要求数据类型相同,而且值也相同

变量就是保存值的容器
JS开发中习惯以驼峰命名格式来命名较长的变量或函数名,因为这样更容易阅读。
名字以小写字符开头,但是接着每一个新单词的首字母都使用大写。
W3C DOM使用相同的命名约定,如getElementById/TagName

优秀的编程实践是尽可能地使用局部变量,这样可以防止变量之间相互干扰。即使他们拥有相同的名字。
在函数体中使用VAR来声明变量,或者作为参数变量在函数定义中出现的变量都是局部变量,
其他的任何方式声明的变量都是全局变量。
局部变量和全局变量的优先级呢?在函数中,局部变量的优先级高于全局变量

注意在JS中小数的运算有精度有问题,请注意,如简单的2.1*3并不是6.6,而是还有后缀,
所以需要使用(2.1*3).toFixed(1))来将数字转为拥有固定小数位数的字符串。
使用Math.round() Math.floor() Math.random 生成一个0到1之间的随机数。

parseInt(3 +'abc')
parseFloat(3.65 +'abc')
会返回合法的数字值,有一定的用途

字符串属性
indexOf 如果查找不到,返回-1,如果找到,返回的是其出现的位置,从0开始算起。

var evtTarget=evt.target ||evt.srcElement;
如果evt.target存在,JS发现第一个表达式的值是真,则不计算后面的,返回的就是evt.target对象。
不是布尔true.

var test = new Object();
test.a=2;
test.b='2';
test.c=function(){console.log(test.a*test.b);}
test.c()

var test2 = {
a:2,
b:'2',
c:function(){
    console.log(this.a*this.b);
}
}

this它总是引用定义该方法的对象。
客户端(浏览器中)使用window作为全局对象,而全局变量就是定义在window上的属性。
object.property
object['property']
是等价的,property替换成method也是同样的效果。

关联数组
var arr=new Object();
arr["name"]="student";
arr["age"]=20;
arr["sex"]="male";
console.log(arr);

for (var item in arr){
console.log(item)
}

数组
var a1=[];
a1.push(1);
a1.push(2);
console.log(a1)
console.log(a1.pop())

数组有push,pop,shift and unshift 四个方法,前两个是从尾部对数组元素进行增删,后两个是从头部进行相同的操作。

PPK谈JS笔记第一弹的更多相关文章

  1. 重操JS旧业第一弹:Script与JS加载

    不管js被包装成什么样子,最终交给浏览器执行的js都是原生的,都离不开原生js的原理. Script标签纸html中用来加载js的标签,我们知道js可以是来自外部,本地,或者内部一段代码,在这里只讨论 ...

  2. ASP.NET 使用ajaxfileupload.js插件出现上传较大文件失败的解决方法(ajaxfileupload.js第一弹)

    在写这篇的时候本来想把标题直接写成报错的提示,如下: “SecurityError:Blocked a frame with origin "http://localhost:55080&q ...

  3. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

  4. 浅谈JS之AJAX

    0x00:什么是Ajax? Ajax是Asynchronous Javascript And Xml 的缩写(异步javascript及xml),Ajax是使用javascript在浏览器后台操作HT ...

  5. 浅谈JS中的闭包

    浅谈JS中的闭包 在介绍闭包之前,我先介绍点JS的基础知识,下面的基础知识会充分的帮助你理解闭包.那么接下来先看下变量的作用域. 变量的作用域 变量共有两种,一种为全局变量,一种为局部变量.那么全局变 ...

  6. 浅谈 js 正则字面量 与 new RegExp 执行效率

    原文:浅谈 js 正则字面量 与 new RegExp 执行效率 前几天谈了正则匹配 js 字符串的问题:<js 正则学习小记之匹配字符串> 和 <js 正则学习小记之匹配字符串优化 ...

  7. 浅谈 js 语句块与标签

    原文:浅谈 js 语句块与标签 语句块是什么?其实就是用 {} 包裹的一些js代码而已,当然语句块不能独立作用域.可以详细参见这里<MDN block> 也许很多人第一印象 {} 不是对象 ...

  8. 浅谈js拖拽

    本文来自网易云社区 作者:刘凌阳 前言 本文依据半年前本人的分享<浅谈js拖拽>撰写,算是一篇迟到的文章. 基本思路 虽然现在关于拖拽的组件库到处都是,HTML5也把拖放纳入了标准.但考虑 ...

  9. jQuery 关于IE9上传文件无法进入后台问题的原因及解决办法(ajaxfileupload.js第四弹)

    第四弹的诞生完全不在自己最初的计划之中,是有个网友看了先前关于<ajaxfileupload.js系列>的文章后提出的问题,由于自己一直是用chrome浏览器去测试demo,完全忽略IE浏 ...

随机推荐

  1. 6.Configure Domain Classes(配置领域类)【EF Code-First 系列】

    在前面的部分中,我们学习了Code-First默认约定,Code-First使用默认的约定,根据你的领域类,然后生成概念模型. Code-First模式,发起了一种编程模式:约定大于配置.这也就是说, ...

  2. 【转】 App架构设计经验谈:接口的设计

    App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用RESTful架构,RESTFul最重要的 ...

  3. WinFrom 公共控件 Listview 的使用

    Listview绑定数据库数据展示与操作使用  1.拖一个Listview控件到项目中先将视图改为Details 2.编辑列 设置列头  添加columnHeader成员 Text 是显示的名称 3. ...

  4. C#学习笔记-封装

    前言 说起来惭愧,学了大半年的C#,其实最开始就接触到了封装的部分,但是一直模模糊糊的弄不清楚,也觉得没什么影响就没怎么在意,现在才开始认真的看这部分内容,看懂了过后好多东西清晰了不少,才发现封装这个 ...

  5. 找不到方法:"!!0[] System.Array.Empty()".

    找不到方法:"!!0[] System.Array.Empty()". 这个原因是没装.net framework 4.6

  6. .net中创建xml文件的两种方法

    .net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...

  7. 《数据结构与算法Python语言描述》习题第二章第一题(python版)

    题目:定义一个表示时间的类Timea)Time(hours,minutes,seconds)创建一个时间对象:b)t.hours(),t.minutes(),t.seconds()分别返回时间对象t的 ...

  8. JS高程3.基本概念(5)语句

    1.if语句 2.do-while语句:后测循环语句,循环体内的代码至少执行一次. 3.while语句:前测循环语句. 4.for语句:前测循环语句. 注意:在ECMAScript中不存在块级作用域, ...

  9. FIS3的简单使用

    序言: 最近在收集前端的优化工具,随便一搜,厉害了word哥,有grunt.gulp.FIS3.webpack等等,简直就是眼花缭乱!前辈们对于他们的评价各有千秋,于是乎就想每个都来用一遍(之前已经倒 ...

  10. Bootstrap之字体图标

    优点:1.减少请求 2.容易控制样式 所在位置:在下载的bootstrap文件中的fonts文件夹存放字体图标 默认路径为当前目录下,如需修改路径,则需在bootstrap.css中查找font-fa ...