PPK谈JS笔记第一弹
以下内容是读书笔记,再一次温习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笔记第一弹的更多相关文章
- 重操JS旧业第一弹:Script与JS加载
不管js被包装成什么样子,最终交给浏览器执行的js都是原生的,都离不开原生js的原理. Script标签纸html中用来加载js的标签,我们知道js可以是来自外部,本地,或者内部一段代码,在这里只讨论 ...
- ASP.NET 使用ajaxfileupload.js插件出现上传较大文件失败的解决方法(ajaxfileupload.js第一弹)
在写这篇的时候本来想把标题直接写成报错的提示,如下: “SecurityError:Blocked a frame with origin "http://localhost:55080&q ...
- 《javascript权威指南》读书笔记——第一篇
<javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...
- 浅谈JS之AJAX
0x00:什么是Ajax? Ajax是Asynchronous Javascript And Xml 的缩写(异步javascript及xml),Ajax是使用javascript在浏览器后台操作HT ...
- 浅谈JS中的闭包
浅谈JS中的闭包 在介绍闭包之前,我先介绍点JS的基础知识,下面的基础知识会充分的帮助你理解闭包.那么接下来先看下变量的作用域. 变量的作用域 变量共有两种,一种为全局变量,一种为局部变量.那么全局变 ...
- 浅谈 js 正则字面量 与 new RegExp 执行效率
原文:浅谈 js 正则字面量 与 new RegExp 执行效率 前几天谈了正则匹配 js 字符串的问题:<js 正则学习小记之匹配字符串> 和 <js 正则学习小记之匹配字符串优化 ...
- 浅谈 js 语句块与标签
原文:浅谈 js 语句块与标签 语句块是什么?其实就是用 {} 包裹的一些js代码而已,当然语句块不能独立作用域.可以详细参见这里<MDN block> 也许很多人第一印象 {} 不是对象 ...
- 浅谈js拖拽
本文来自网易云社区 作者:刘凌阳 前言 本文依据半年前本人的分享<浅谈js拖拽>撰写,算是一篇迟到的文章. 基本思路 虽然现在关于拖拽的组件库到处都是,HTML5也把拖放纳入了标准.但考虑 ...
- jQuery 关于IE9上传文件无法进入后台问题的原因及解决办法(ajaxfileupload.js第四弹)
第四弹的诞生完全不在自己最初的计划之中,是有个网友看了先前关于<ajaxfileupload.js系列>的文章后提出的问题,由于自己一直是用chrome浏览器去测试demo,完全忽略IE浏 ...
随机推荐
- luogg_java学习_07_抽象类_接口_多态学习总结
这篇博客总结了半天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 抽象 一种专门用来做父类,被继承的. (模板) 格式: abs ...
- SQLServer并发问题,先SELECT后UPDATE,避免并发脏读情况解决
在SQL Server中,需要对数据操作进行先SELECT 之后UPDATE,对于这样的操作,如果出现高并发,可能导致脏读情况的发生.不能保证数据的同步. 解决方案是在事物中对表进行加更新锁: 事务一 ...
- spring Mvc + Mybatis 中使用junit
在Spring Mvc + Mybatis的项目中我们有时候需要在测试代码中注入Dao操作数据库,对表进行增删改查,实现如下: 这是一般的maven项目项目结构 测试代码一般写在src/test/ja ...
- Java新人学习(li)
一.项目中搭配使用SVN和Git 安装SVN:安装熟悉Git:安装maven,修改setting.xml文件:安装eclipse,配置jdk.maven路径: 建立自己的Git仓库,熟悉常用的Git命 ...
- python基础之正则表达式
正则表达式语法 正则表达式 (或 RE) 指定一组字符串匹配它;在此模块中的功能让您检查一下,如果一个特定的字符串匹配给定的正则表达式 (或给定的正则表达式匹配特定的字符串,可归结为同一件事). 正则 ...
- 软件开发流程 Software development process
软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...
- [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上
将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...
- JS学习笔记9之event事件及其他事件
-->鼠标事件-->event事件对象-->默认事件-->键盘事件(keyCode)-->拖拽效果 一.鼠标事件 onclick ---------------鼠标点击事 ...
- Objective-C 数据集合
1.NSSet 1.是一个无序的,管理多个对象的集合类,最大特点 是集合中不允许出现重复对象,和数学上的集合含义是一 样的 2.除了无序.不许重复之外,其它功能和NSArray是一样的 2.NSArr ...
- SharePoint 2013 状态机工作流之日常报销示例
简单介绍下状态机工作流,状态机工作流提供了一系列的状态.工作流从初始状态开始,到终止状态结束.两个状态之间定义行为进行过渡.通常情况下,状态机工作流对事件作出反应,事件的发生将会使状态发生改变. 1. ...