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.函数:通过函数可以封装 ...
随机推荐
- win7 Visual Studio 2008 安装程序时出现“ 加载安装组件时遇到问题。取消安装。”处理方法
win7 Visual Studio 2008 安装程序时出现“ 加载安装组件时遇到问题.取消安装.”处理方法 vs2008试用期到期,卸载.重新安装都会出现“ 加载安装组件时遇到问题.取消安装.”无 ...
- OC基础15:内存管理和自动引用计数
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...
- OC基础13:数字、字符串和集合2
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 17.Foundation框架的数组是有序 ...
- jsp验证码页面笔记
首先在网上搜了下jsp生成验证码的代码,如下: package com.servlet; import java.awt.Color; import java.awt.Font; import jav ...
- Android EditText限制输入一些固定字符的属性
android:digits="abcdefghijklmnopqrstuvwxyz1234567890" 仅仅能输入这些
- oracle优化思考-双刃剑
oracle优化是一个双刃剑,特别注意这把剑用的场合:系统规划OLTP or OLAP 优化1:索引 在DML操作时.必须维护索引.假设大量的DML操作,想想看,IO是不是老高了? 索引长处:在非常多 ...
- Iframe和父窗口互调方法的集合
1.子iframe里调用父级的方法:window.parent.document. 2.父级里调用子集iframe:window.frames["iframe_text"].d ...
- IIS应用程序池自动回收问题的有效解决办法
问题:Timer不能持续执行,如果长时间没有访问,就会被IIs自动回收.造成一些定时作业无法完成. 解决方式1:改用windows服务或是winform方式 解决方式2:在Application_En ...
- ./configure: error: the HTTP rewrite module requires the PCRE library
docker中CentOS安装nginx出错,提示没有PCRE,需要安装pcre-devel,同时还需要安装openssl.openssl-devel yum -y install pcre-deve ...
- Blend制作TextButton和ImageButton
最近看了几个高人做的软件界面(http://kaodigua.net/),羡慕嫉妒到不行,决定学习一下Blend的用法,马上觉得WPF开发的界面设计就应该放在Blend里面做.学习了两位大神的博客(h ...