JavaScript
洛神赋在csdn
这个作者很懒,什么都没留下…
展开
-
JavaScript中的正则表达式RegExp
正则表达式的两种表示方法:字面量形式和构造函数形式var reg = /cat/g;var reg = new RegExp("/cat/", "g");可见无论哪一种方式都指明了正则表达式都由两部分组成:模式和标志。标志分三种:g(global),i(ignore),m(multiline)。global:匹配所有符合条件的字符串而不是遇到第一个解就终止。ignore:忽略大小写multilin...原创 2018-06-11 21:35:12 · 146 阅读 · 0 评论 -
Js中采用字面量方式重写原型函数导致原型函数的constructor属性不再执行构造函数
/** * 关于函数原型对象的一点高级知识 * 字面量方式创建实例的原型对象导致 原型对象的constructor不再指向构造函数。 */function Person() { this.password = null;}Person.prototype.username = '托马斯曼';Person.prototype.password = '1234567';Pe...原创 2018-07-23 16:02:24 · 726 阅读 · 0 评论 -
Js中的原型属性为什么可以做到动态地更新从而将属性的变化同步到所有的实例中
/** * @description * 原型的动态性:对原型中的属性所作的更新会实时地反应到实例对象上。 * 即便实例地创建是先于原型属性地修改。看一个例子: */function Person() { this.password = null;}Person.prototype.username = '托马斯曼';let person = new Person();...原创 2018-07-23 15:43:36 · 529 阅读 · 0 评论 -
Js中判断一个属性是属于原型函数还是实例属性的方法
/** * * 检测一个属性是实例属性还是原型属性 * 检测完成以后,再来作操作 * */function Person(password) { this.password = password;}Person.prototype.username = 'luohao';let person = new Person(123);/** * 可以访...原创 2018-07-23 15:04:32 · 2021 阅读 · 0 评论 -
JavsScript中的数据属性和构造器属性
'use strict';var person = new Object();Object.defineProperties(person, { username: { configurable: true, enumerable: true, writable: false, value: '洛神赋' },...原创 2018-07-23 10:20:21 · 273 阅读 · 0 评论 -
script位置影响执行时机以及script的执行和DOM加载之间的微妙关系
调试过程中的思考:==================================================================DOM的加载和script执行之间的关系:先执行script代码,再加载DOM。在执行document.getElementsByTagName('div');时,还没有加载div元素所以获取不到div元素。=====================...原创 2018-06-29 08:40:38 · 939 阅读 · 0 评论 -
JavaScript函数传参是按指传递还是按引用传递
<html><head> <script type="text/javascript"> function test(reference) { reference.name = 'logic'; reference = new Object(); reference.name ...原创 2018-07-03 21:08:53 · 389 阅读 · 0 评论 -
JavaScript的热身运动
<html> <head> <script> //生成文本 document.write('子为政,焉用杀?'); //生成普通文本和标签 document.write('<span>朝闻道,夕死可矣!</span>'); ...原创 2018-07-02 06:44:07 · 143 阅读 · 0 评论 -
Array中的迭代方法出现的问题 --- 看到的同学可以给我指点
//SyntaxError: Illegal break statementvar flag = false;this.people.forEach(function(elem, index, list) { if (elem.id === this.addForm.id) { flag = true; break; }});不可以在forEach方法内部通过break跳出循环。我很好奇,怎么...原创 2018-07-08 20:22:11 · 189 阅读 · 0 评论 -
理解Js中的继承 看这篇博客时务必画出子对象实例 子对象原型 子对象构造函数 父对象实例 父对象原型 父对象构造函数之间的关系
function Father() { this.bbb = '222';}Father.prototype.aaa = '111';function Son() { this.ccc = '333';}var father1 = new Father();var father2 = new Father();Son.prototype = father1;Son...原创 2018-07-25 10:48:44 · 355 阅读 · 0 评论 -
JavaScript中最常用的继承模式 结合原型模式和借用构造函数模式的有点于一体
function XiMenQing() { this.name = '西门庆'; this.age = 34; this.wifes = ['潘金莲', '吴月娘', '李瓶儿'];}XiMenQing.prototype.details = function() { return '生子当如西门庆';}function WuDaLang() { XiMenQi...原创 2018-07-25 12:04:50 · 142 阅读 · 0 评论 -
对数组的遍历和对对象的遍历 --- for ... in 和 for ... of 的区别
var arr=["张三","李四","王五","赵六"];let person = { username: 'luohao', password: '123456', hometown: '湖北省'}//for ... of 专属于数组的遍历方式for (var value of arr){ console.log(value);}for (let index in...原创 2018-09-06 11:15:01 · 641 阅读 · 0 评论 -
遍历对象中的属性 --- 只遍历实例中的属性原型中的属性不遍历,和不仅遍历自身的属性而且遍历原型中的属性
function China() { this.location = '亚洲';}function HuBei() { this.feature = '湖泊';}function WuHan() { this.advanced = '教育';}HuBei.prototype = new China();WuHan.prototype = new HuBei();...原创 2018-09-06 11:08:48 · 444 阅读 · 0 评论 -
JavaScript数据结构之列表 --- ADT
function List() { this.listSize = 0; //列表中实际元素的数量 this.pos = 0; this.dataStore = []; this.clear = clear; this.find = find; this.toString = toString; this.insert = insert;...原创 2018-07-22 17:28:26 · 235 阅读 · 0 评论 -
在一个对象数组中查找一个指定的对象是否存在
function find(list, elem) { for (let i = 0; i < list.length; i++) { let flag = true; let current = list[i]; for (key in current) { if (elem[key] !== current[key]) { fla...原创 2018-07-22 16:36:56 · 3441 阅读 · 0 评论 -
Js中遍历对象的属性的误区
let location = {province: '湖北', city: '武汉', country: '武昌'};for (key in location) { console.log(location.key); console.log(location[key]);}undefined湖北undefined武汉undefined武昌 ...原创 2018-07-22 16:25:03 · 408 阅读 · 0 评论 -
JS中两个对象相等意味着引用指向同一块内存区域
let location1 = {province: '湖北', city: '武汉', country: '武昌'};let location2 = {province: '湖北', city: '武汉', country: '武昌'};console.log(location1 === location2);let location3 = {province: '江苏', city...原创 2018-07-22 15:57:14 · 3218 阅读 · 0 评论 -
JavaScript事件处理程序
html事件处理程序元素内置了一些预定的事件处理程序input有自己的事件 button也有自己的事件html特性和事件处理程序同名。click事件,onclick事件处理程序。onclick出现在html中成为html特性。这个概念要明晰。html特性的值可以是可执行的JavaScript语句,也可以是script脚本。<input type="button" valu...原创 2018-07-28 15:16:02 · 158 阅读 · 0 评论 -
JS事件流
事件:JavaScript和Html之间的交互就是通过事件完成。------------------------------------------当你点击某个button时,你不仅仅点击了button。你还点击了包含这个button的容器,你同时点击了整个页面。------------------------------------------事件的核心概念事件流:从页面上接受事件...原创 2018-07-28 15:12:13 · 191 阅读 · 0 评论 -
检测浏览器是否支持canvas功能
<html><head></head><body> <div id = 'support'> </div></body><footer> <script> var support = document.getElementByI原创 2018-07-01 19:23:16 · 5133 阅读 · 0 评论 -
JavaScript中的私有变量
JavaScript中的私有变量很不好意思。Javascript中没有私有变量这一事实。JavaScript中的所有对象属性都是公有的。我们在任何地方,可以通过对象加成员访问符就可以访问我们的成员变量。虽然实际上没有私有变量,但是我们可以提出一个私有变量的概念。什么是私有变量?只能在函数内部,不可以在函数外部访问的变量。那么,这就引出一个事实:在函数内部定义的变量在函数外部都是不可以访问的。因此,...原创 2018-06-20 08:41:32 · 1105 阅读 · 0 评论 -
JavaScript原型模式 中篇
原型的动态性什么叫原型的动态性?对原型对象的修改会作用于实例,即便实例是在原型对象修改前创建的。举一个例子:function Person() {};Person.prototype.username = 'luohao';Person.prototype.password = '123456';Person.prototype.register = function() { console.lo...原创 2018-06-17 09:47:55 · 132 阅读 · 0 评论 -
JavaScript原型模式 上篇
原型模式上一次讲到了构造函数模式,遗留了一个问题:如果同一个方法被多个实例对象使用,那么创建的多个实例中都存在相同的方法,而其实这个方法完全可以作为公共的方法被某个类的所有实例对象共享。为此,我们创建了全局方法。随之而来的问题是,如果这个方法是全局方法,那么岂不是所有的对象都可以方法这个方法了吗?这有损封装的特性。最好是由具体的某一类对象使用这个方法,或者这个方法是专门为这一类实例对象准备的。还有...原创 2018-06-16 10:21:47 · 153 阅读 · 0 评论 -
JavaScript基本类型和引用类型
============================基本类型和引用类型=================================基本类型有哪些?Undefined, Null, Number, Boolean, String基本类型在内存中占据固定内存大小的空间,保存在栈空间上。对基本类型的复制是的的确确的复制,复制的是基本变量自身,得到的是一个副本。判断某个值是哪种基本类型,可以使用...原创 2018-06-09 09:17:47 · 368 阅读 · 1 评论 -
JavaScript中工厂模式和构造函数模式
========设计模式===========第一个设计模式:工厂模式。一般我们是通过Object和工厂模式的方式创建对象。现实中这种方式使用的也是最多的。但是做事要追求高大上。这是一种信仰。学会在实际中尽量使用设计模式。比如创建一个Person实例。var person = new Object();person.name = "希斯克利夫";person.theme = "呼啸山庄";cons...原创 2018-06-15 09:58:46 · 231 阅读 · 0 评论 -
对JavaScript对象的理解 上篇
什么是对象?对象和散列表在结构上很是相似都是键值对的集合。对象的创建方法传统的方法是使用new Object()方式。然后,在程序的执行过程中,动态地为其添加相关的静态属性和动态属性。var obj = new Object();obj.words="凡人皆有一死";obj.house="风息堡";obj.future = function() {}另一种就是采用字面量的方式:var obj = ...原创 2018-06-14 08:34:15 · 176 阅读 · 0 评论 -
JavaScript中的窗口关系和框架
浏览器的全局对象是window,在全局作用域中声明的对象实际上都是都是挂载在window对象下。页面中如果包含多个框架,那么每一个框架都有自己的window对象。也就是每一个框架都有自己的全局作用对象。所有的框架都保存在frames集合上。每一个框架可以通过框架名访问,window.frames[framename];搜索frame的方法还是两种方式,绝对搜索和相对搜索。绝对搜索也就是针对最顶层的...原创 2018-06-21 07:18:48 · 1173 阅读 · 0 评论 -
JavaScript中的基本包装类型和引用类型
String s1 = "wuhan";s2 = s1.substring(2);console.log(s2);以上代码竟然可以执行!s1是基本字符串类型,基本类型是没有属性和方法的,但是s1存在substring方法,这不就矛盾嘛。这里涉及到一个自动类型转换的问题,在后台解析器自动将基本类型转换成基本包装类型基本包装类型,而且是隐形的基本包装类型。显示的基本包装类型是引用类型(new)。基本包...原创 2018-06-13 08:11:19 · 301 阅读 · 0 评论 -
JavaScript中的函数 上篇
==========================function==========================第一点:函数是对象,函数是对象,函数是对象。重要的话说三遍。函数既然是对象,那么函数自然有引用啊,既然有引用,那肯定可以不止只有一个引用啊。看一段代码:var point1 = function() { console.log("function test");}var poin...原创 2018-06-11 22:32:46 · 126 阅读 · 0 评论 -
JavaScript原型模式 下篇
<html><head> <script type="text/javascript"> function Person(){ }; Person.prototype = { constructor: Person, username: "logic", password: "12345", places: ['西安', '武汉', '成都..原创 2018-06-17 10:29:26 · 131 阅读 · 0 评论 -
JavaScript创建自定义类型的方法以及改进措施
采用构造函数存储实例属性,采用原型模式存储公共属性。这就是实际中最常用的创建自定义类型的最佳实践。function Person(username, password){ this.username = username; this.password = password;};Person.prototype = { constructor: Person, places: ['希腊', '罗马'...原创 2018-06-17 12:14:21 · 199 阅读 · 0 评论 -
JavaScript的调试技能
在处理JavaScript错误时,都有哪些工具和手段可以使用。==================================================try...catch...finally错误类型RangeError: 数值超出对应的范围。ReferenceError: 找不到对象时会发生的错误(对象未定义就使用)。SyntaxError: 语法错误TypeError:类型错误(所...原创 2018-07-01 14:24:46 · 126 阅读 · 0 评论 -
节点的关系和操作
节点之间的关系每一个节点都有childNodes属性,这个属性明显体现了父子关系。从父到子。每一个节点都有parentNode属性,这个属性也体现了父子关系。从子到父。同一个父节点的nodeList中的每一个节点都有previousSibling属性和nextSibling属性,即便是第一个和最后一个,结果无非就是空与非空。这明显体现了兄弟关系。通过以上的由父到子和由子到父以及兄弟之间的关系,我们...原创 2018-06-26 08:18:19 · 709 阅读 · 0 评论 -
JavaScript闭包
纯粹个人笔记不适合新手看,因为经过提炼。在JavaScript中闭包是个纠结。需要理解,但是尽量避免使用。因为在功力不够的情况下,驾驭不了神功,容易走火入门。理解闭包的核心是理解如何创建作用域链以及作用域链有什么作用的细节。一个函数被执行时,首先创建这个函数的执行环境和相应的作用域链。然后使用参数来初始化活动对象。一个函数包含本地的活动对象和全局变量对象。在函数中访问一个变量时,首先在当前作用域中...原创 2018-06-19 08:28:29 · 126 阅读 · 0 评论 -
JavaScript中的Array下篇
左迁至蓝关示侄孙湘一封朝奏九重天,夕贬潮阳路八千。欲为圣明除弊事,肯将衰朽惜残年!云横秦岭家何在?雪拥蓝关马不前。知汝远来应有意,好收吾骨瘴江边。数组复制和数组拼接var cities = ["wuhan", "beijing", "suhzou", "jiangxi"];数组复制places = cities.concat();console.log(cities.join("||"));数组拼...原创 2018-06-10 19:35:32 · 106 阅读 · 0 评论 -
JavaScript中的继承 下篇
//经典继承 function SuperType() { this.words = "凛冬将至"; } SuperType.prototype.place = '风息堡'; function SubType() { SuperType.call(this); //在子对象内部调用父对象的构造函数 //获取父对象属性的副本,注意是副本。 ...原创 2018-06-17 22:29:14 · 130 阅读 · 0 评论 -
JavaScript继承上篇
function Animal() { this.hour = 7; this.sleep = function() { console.log("animal need to sleep " + this.hour + " hours!"); } } Animal.prototype.feelings = ['puzzed', 'sad', 'respect', 'an...原创 2018-06-17 21:02:05 · 108 阅读 · 0 评论 -
JavaScript中的Array 上篇
JavaScript中的数组和Java中的数组之间的差异1 => Java中的数组的每一项存储的数值的类型必须完全一样,但是JS灵活很多,JS中的数组的每一项存储的元素的类型都可以不一样。2 => Java中的数组的容量是在定义时就初始化好的,不存在扩容的可能性。但是JavaScript中完全不一样,JavaScript中的数组是可以动态扩容的。归结为两点:类型多样化和容量自增化。数组...原创 2018-06-10 11:29:10 · 157 阅读 · 0 评论 -
JavaScript从工厂模式到寄生对象模式
工厂模式:function personFactory(username, password) { var person = new Object(); person.username = username; person.password = password; return person;}var person = personFactory("luohao", "123456");conso...原创 2018-06-17 12:37:04 · 317 阅读 · 0 评论 -
javaScript中的every,some,forEach,map,filter五者的用途
总结,看似浪费,但是却是极大地节省时间。every,它地用武之地在哪里呢?不期望它能对原始数组进行修改。它地定位是考察数组地整体特性。也就是考察数组中所有元素的共性。比如所有元素是否都是奇数,或者所有元素是否都是偶数。它关注的是数组整体元素的共性。只要有一个不满足,循环就会结束,接下来的数据就不会继续判断。var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]...原创 2018-09-06 11:49:30 · 2955 阅读 · 1 评论