javascript高级程序设计一(1-80)
源代码研究,实例:http://fgm.cc/learn/
js面试知识点:
1:原生、闭包、上下文、call、apply、prototype。
2:jsonp:用script标签实现跨域、xss:javascript页面填写攻击。
3:架构,设计模式。
//
开发的项目:贪吃蛇游戏。拼音加加双拼输入法软件。
//
符合意思:##:疑惑,**:重点
1、javascript的实现:
- 弹出浏览器新窗口的功能;
- 移动,缩放和关闭浏览器窗口的功能;
- 提供浏览器详细信息的navigator对象;
- 浏览器加载页面详细信息location对象;
- 用户显示器分辨率详细信息screen对象;
- 对cookies支持;
- XMLHttpRequest对象和IE的ActiveXObject的对象。
- BOM没有标准可以遵循,
- 每个浏览器都可以自己实现。
- html已经正式标准的BOM。
- undefined:未定义。
- boolean:布尔值。
- string:字符串。
- number:数字。
- object:对象
- null:null
- function:函数。
- hasOwnProperty():用于检查给定的属性在当前对象实例中是否存在。
- isPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型。
- propertyIsEnumerable(propetyName):用于检查给定的对象是否能够使用for-in语句。
- toLocaleString():返回对象的字符串,与执行环境的地区对应。
- toString():返回对象的字符串表示。
- valueOf():返回对象的字符串、数值或布尔值。
try{
sldfj
// throw new Error("-2","输入的值不能大于10");
}catch(e){
for(var p in e){
document.writeln(p + “=” + e[p]);
// alert("异常名字:"+e.name);
// alert("异常号:"+e.number);
// alert("异常的描述信息:"+e.description);
// alert("异常的错误信息:"+e.message);
}
}
输出:name=TypeError message=’sldfj’ 未定义 number=-2146823279 description=’sldfj’ 未定义
24、js错误类型。
valueOf():
var o ={
varlueOf:function(){
return -;
}
}
o--; //值变成数值-2
位操作符、逻辑操作符、关系操作符号、相当操作符号、赋值操作符号
9、语句
30、for-in是一种精准的迭代语句。可以枚举对象的属性。
for(var propName in window)
{
document.write(propName); //枚举window的所有属性。
}
31、for-in迭代到对象为null,undefined就会抛出错误。ECMA5修正这种行为,不抛出错误,而是不执行循环体。我兼容性,for-in之前检测对象不是null,undefined类型。
32、with语句的作用是将代码的作用域设置到一个特定的对象中。(with导致性能下降,调试麻烦,不建议使用)
理解参数
var person = new Object();
person.name = "Nicholas";
person.age=29;
//
var person = { name:"Nicholas"; age:29}
var colors = new Array();
var colors = new Array(20);
var colors = new Array('red','blue','green');
- toLocalString()、toString()、valueOf()方法。
- 调用toString()是返回逗号拼接的字符串。
- valueOf还是数组。
- 为了创建字符串会调用数值每一项的toString()方法。
var colors = ["red","blue","green"]; // 创建一个包含3个字符串的数组。
alert(colors.toString()); //red,blue,green
alert(colors.valueOf()); //red,blue,green
alert(colors); //red,blue,green
var colors = ['red','grenn','blue'];
alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red || green || blue
- splice()方法:删除:可以删除任意数量的项,
- splice(0,2)会删除数组的前两项。
- 插入:向指定位置插入任意数量的项。
- splice(2,0,'red','green')会在当前数组位置2插入字符串red和green。
- 替换:splice(2,1,'red','green')会删除当前数组位置2的项,然后再从位置2开始插入字符串red和green。
- filter:返回数组,利用指定函数确定是否在返回的数组中包含的某一项。
- map:返回数组,这个数组的每一项都是在原始数组中对于上运行传入的函数结果。
- forEach:没有返回值。只是对数组中的每一项运行传入函数。与for类似。
function sum(num1+num2)
{
return num1+num2;
}
alert(sum(10,10)); //
var anotherSum = sum;
alert(anotherSum(10,10)) ;//
sum = null;
alert(anotherSum(10,10)); //
aleft(sum(10,10));
function sum( num1+num2)
{
return num1+num2;
}
//以上代码正确执行
aleft(sum(10,10));
var sum = function ( num1+num2)
{
return num1+num2;
}
function callSomeFunction(someFunction,someArgument)
{
return someFunction(someArgument);
} function add10(num)
{
return num+10
}
var result1 = callSomeFunction(add10,10)
alert(result1 ); //
javascript高级程序设计一(1-80)的更多相关文章
- 读书笔记(02) - 可维护性 - JavaScript高级程序设计
编写可维护性代码 可维护的代码遵循原则: 可理解性 (方便他人理解) 直观性 (一眼明了) 可适应性 (数据变化无需重写方法) 可扩展性 (应对未来需求扩展,要求较高) 可调试性 (错误处理方便定位) ...
- 《JavaScript高级程序设计(第3版)》笔记-序
很少看书,不喜欢看书,主要是上学时总坐不住,没有多大定性,一本书可以两天看完,随便翻翻,也可以丢在角落里几个月不去动一下. 上次碰到了<JavaScript高级程序设计(第3版)>感觉真的 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- 【javascript学习——《javascript高级程序设计》笔记】DOM操作
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...
- 读javascript高级程序设计00-目录
javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...
- 《JavaScript高级程序设计》读书笔记--前言
起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...
- 阅读摘录《javascript 高级程序设计》01
前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了 ...
- 《JavaScript高级程序设计》学习笔记(5)——面向对象编程
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...
- 《JavaScript高级程序设计》学习笔记(4)——引用类型
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...
- 《JavaScript高级程序设计》学习笔记(3)——变量、作用域和内存问题
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第四章内容. 1.函数:通过函数可以封装 ...
随机推荐
- 如何不让oracle使用linux的swap分区
经常看到swap分区被使用,被缓存的内容本来是为了增加命中率,结果去不断换入换出,导致本地磁盘IO增加,影响访问速度.所以在内存充足的情况下,如果我们觉得不需要使用swap分区的时候,那就要想办法尽量 ...
- Single NumberII
**一定要注意 == 运算符的优先级高于& 因此在条件判断的时候 必须加括号 class Solution { public: int IsBit1(int num, int place) { ...
- hdu 5500 Reorder the Books(规律)
题意: 有一个1→n的排列形成的数列,我们要用最少的操作次数把这个数列从小到大排序,每次操作都是把一个数放到整个数列的最前面. 思路: 首先最大的数n是不用操作的(其他数操作好了,n ...
- 九度OJ 题目1371:最小的K个数
题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 输入: 每个测试案例包括2行: 第一行为2个整数n,k(1< ...
- nagios插件之监控if8接口日志(新接口)
vi check_if8_log.c #include <stdio.h> #include <stdlib.h> #include <string.h> #inc ...
- 微信朋友圈分享js代码最新2015年无错版
最近微信对分享做了进一步规范,导致很多分享都不起作用了,今天跟大家分享,2015年最新修无错的! 以下是主要微信分享页面代码:(其中红色部分主要懒友自己填写自己哈.) <?php require ...
- UVA 1617 Laptop
题意: 有n条长度为1的线段,确定他们的起点,必须是整数,使得第i条线段在[ri,di]之间.最后输出空隙的最小值 分析: 原始数据排序,排序的规则是先按照右端点排序,右端点相同的情况下,再按照左端点 ...
- satellite-menu和ArcMenu
github上的开源库其实还是很不错的,之前的时候总感觉学一些开源库比较麻烦,里边有好多方法什么的,今天终于迈出了第一步,中间也遇到了一些问题,现在总结下,也给其他刚开始学习开源库的小伙伴一些指导: ...
- 可以通过Action来判断是什么操作触发了事件
ObservableCollection<T>当这个集合发生改变后会有相应的事件得到通知请看如下代码: static void Main(string[] args) { var a = ...
- Spring IOC的配置使用(转)
转:http://www.cnblogs.com/linjiqin/p/3408306.html Spring IOC的配置使用 1.1.1 XML配置的结构一般配置文件结构如下: <beans ...