以下内容是读书笔记,再一次温习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. luogg_java学习_07_抽象类_接口_多态学习总结

    这篇博客总结了半天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 抽象 一种专门用来做父类,被继承的. (模板) 格式: abs ...

  2. SQLServer并发问题,先SELECT后UPDATE,避免并发脏读情况解决

    在SQL Server中,需要对数据操作进行先SELECT 之后UPDATE,对于这样的操作,如果出现高并发,可能导致脏读情况的发生.不能保证数据的同步. 解决方案是在事物中对表进行加更新锁: 事务一 ...

  3. spring Mvc + Mybatis 中使用junit

    在Spring Mvc + Mybatis的项目中我们有时候需要在测试代码中注入Dao操作数据库,对表进行增删改查,实现如下: 这是一般的maven项目项目结构 测试代码一般写在src/test/ja ...

  4. Java新人学习(li)

    一.项目中搭配使用SVN和Git 安装SVN:安装熟悉Git:安装maven,修改setting.xml文件:安装eclipse,配置jdk.maven路径: 建立自己的Git仓库,熟悉常用的Git命 ...

  5. python基础之正则表达式

    正则表达式语法 正则表达式 (或 RE) 指定一组字符串匹配它;在此模块中的功能让您检查一下,如果一个特定的字符串匹配给定的正则表达式 (或给定的正则表达式匹配特定的字符串,可归结为同一件事). 正则 ...

  6. 软件开发流程 Software development process

    软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...

  7. [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上

    将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...

  8. JS学习笔记9之event事件及其他事件

    -->鼠标事件-->event事件对象-->默认事件-->键盘事件(keyCode)-->拖拽效果 一.鼠标事件 onclick ---------------鼠标点击事 ...

  9. Objective-C 数据集合

    1.NSSet 1.是一个无序的,管理多个对象的集合类,最大特点 是集合中不允许出现重复对象,和数学上的集合含义是一 样的 2.除了无序.不许重复之外,其它功能和NSArray是一样的 2.NSArr ...

  10. SharePoint 2013 状态机工作流之日常报销示例

    简单介绍下状态机工作流,状态机工作流提供了一系列的状态.工作流从初始状态开始,到终止状态结束.两个状态之间定义行为进行过渡.通常情况下,状态机工作流对事件作出反应,事件的发生将会使状态发生改变. 1. ...