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.函数:通过函数可以封装 ...
随机推荐
- 一个简单java爬虫爬取网页中邮箱并保存
此代码为一十分简单网络爬虫,仅供娱乐之用. java代码如下: package tool; import java.io.BufferedReader; import java.io.File; im ...
- 关键路径(CriticalPath)算法
#include <stdio.h> #include <stdlib.h> #include <malloc.h> #define MAXVEX 30 //最大顶 ...
- Android通过HTTP POST带參訪问asp.net网页
在看了网络上非常多视频关于android通过HTTP POST或者GET方式訪问网页并获取数据的方法. 自己也copy了一份来測试.并通过C#.NET搭建了一个简单的后台,但发现传參时,依照网上的方式 ...
- OAuth2.0认证介绍
OAuth2.0鉴权 返回 目录 [隐藏] 1 腾讯微博OAuth2.0认证介绍 2 获取accesstoken的两种方式 2.1 1.Authorization code grant 2.1.1 第 ...
- C语言高速入口系列(七)
C语言高速入口系列(七) C语言指针进阶 本章引言: 在前面第5节中我们对C语言的指针进行了初步的学习理解;作为C语言的灵魂, C指针肯定没那么简单,在这一节中,我们将会对指针进行进一步的学习,比方二 ...
- QImage 与 cv::Mat 之间的相互转换
近期做图像处理方面的项目比較多,非常多算法自己从头写的话太浪费时间,并且自己写的也不一定完好,早就听说OpenCV在图像处理算法方面功能非常强大,一直没时间学习,这次正好项目用到了.暂时抱佛脚学习些O ...
- vsts
首先要搞清楚啥是VSTS,这对于我们安装配置有基础作用.看看这张组织结构图就一目了然了.Visual Studio Team Suite就是我们常说的VS.NET 2005开发环境,安装包3G左右的 ...
- (转)12款开源JavaScript库
JavaScipt几乎是所有前端开发人员必会的编程语言,并且,随着各种移动APP的串红,JavaScript还可以用来开发移动应用.除此以外,为了丰富前端/移动开发,有不少开发者推出了各种基于Java ...
- CSS学习笔记(1):选择器
一.元素选择器 HTML文档元素就是最基本的选择器 如: <!DOCTYPE html> <html lang="en"> <head> < ...
- C++中socket编程
原文:http://blog.csdn.net/cuiran/article/details/5854794 Server端 #include <WINSOCK2.H> #include ...