js基础例子dom+原型+oop基础知识记录01
//oo:概念是计算机中对于现实世界的理解和抽象的方法 //由计算机利用编程技术发展到现在的产物 //面向对象几要素 //对象:由属性和方法组成的集合 //属性:保存数据,存储在对象内存空间中的唯一的地方集合 //方法:在类外,函数叫函数,在类中,函数叫方法,用于完成想要的功能 //成员:属性与方法的统称 //创建方法3种方法 //1:直接量:语法{key:value}; //例1: var object1={name:'python',age:25, sex:'hello', f1:function () { console.log(this.sex);// hello console.log(this);//这个this指向当前对象object1 } }; //调用 object1.f1(); //实例化创建与调用 var obj1=new Object(); obj1.name1='hello'; obj1.age1=24; obj1.fun1=function () { console.log(this.age1);//24 }; obj1.fun1();// for(var a in obj1){// console.log(a+obj1[a])// } // 如果程序叫创建的对象少时,建议使用var obj={} //通过构造函数创建 function Add(a,b) { this.a=a; this.b=b; this.c=function () { console.log(this.a+this.b) } } var add=new Add(3,4); add.c(); //dom的操作:操作结构化文档的一组api(即xml/html) //核心 dom操作页面中所有结构化文档(增,删,改,查) //核心dom缺点:繁琐但功能全面 //html dom操作页面简化了流程 ,但无法完成功能 //document所有页面中<最大的老大> //分以下几大类(根据级别来分,从小到大) //标签:1> 属性:2>文本:3>document:9; //dom对象类型 //nodeType:对象 //nodeValue:值 //nodeName:名称 //bom包含document //原始类型比较使用2个等号 //引用类型比较使用3个等号 //&非短路逻辑 A&B A为假 ,继续执行B,最终结果为false //a||b a为真 b不会继续执行 //a|b A为真,继续执行B, 结果为true //nodeName //1:元素 标签 ,返回大写 //2:文本 #text //3:document #document //假设判断是否是对应的类型 //if(node.nodeName=='BUTTON') //nodeValue //1:元素 null //2:文本 文本内容 //dom树的关系 //父子关系 /*node parentNode 每个节点最多可能有一个父节点 childNodes 返回子节点集合 firstChild 第一个子节点 lastChild 最后一个子节点 * * 兄弟 * previousSibling 上一个平级兄弟 * nextSibling 下一个平级兄弟 * 注意:parentNode以外,都会受到空格,换行,制表符 * 干扰 * 解决方式:节点树 jq *其他方式的dom树获取 * 父子 * parentElementsNode; * children --ie8 * firstElementChild * lastElementChild * 兄弟 * nextElementSibling 下一个兄弟 * previousElementSibling 上一个兄弟 * 递归调用:对相同数据进行操作时,使用递归函数内调用自身 *对象在内部访问其他方法和属性时,使用this * 对象在外部访问对象方法与属性时,使用对象名 * 原型:父对象 * 父对象中的方法与属性子对象直接使用 * ,每个函数对象有一个prototype属性,指向对象{原型} * 子对象都有一个属性__proto__指向对象{原型} * 优点:节省内存空间 * 一次修改,处处生效,便于维护 * * 原型链 * 一个对象有一个原型对象(也有一个原型对象) * 判断一个对象类型 * typeOf([]);Array * typeOf({});Object * []空数据-->Array--null * {}空对象-->Object--null * 判断父对象是否在子对象原型链 * 父对象.prototype.isPrototypeOf(子对象),如果是返回true,否则是false * 每一个对象都有原型,原型对象有一个属性__proto__ * 重载(js不支持),但可以模拟,通过arguments[index]来进行重载 * oop特点 * 封装:将属性和方法集中定义在一个对象中 * 继承:父对象中的成员,子对象中可以直接使用 * 多态:在不同情况下表现出不同状态 * * dom * html属性查找 * id * document.getELementById('id');//速度快 * 下面3个都返回的是一个数组集合 * 标签 * getElementsByTagName(标签) * 动态集合(代理),并非实际节点 * name * getElementsByName(name) * class * getElementsByClassName(class) * * css选择器查找 * querySelector(css选择器)(查找一个) * querySelectorAll(css选择器)(查找多个) * * 修改元素内容 * 获取设置元素开始和结束间标签所有代码 * innerHTML * 删除 * innerHTML='' * 添加 * innerHTML='value'or'html代码' * textContent * 功能与innerHTML类似 * 它只能获取和修改文本内容 * 低版本ie不支持 * innerText(ie浏览器的) * 与textContext一样 * innerText 火狐支持 textContent ie不支持 * * 获取属性值 * getAttribute(value) * 修改 * setAttribute(value,'新值') * 简单方式 * node.value * node.id * node.attributes[下标/属性名] * 或者 * node.attributes[下标/属性名]=value * hasAttribute(属性),如果属性存在返回true,否则false * 删除属性 * removeAttribute(属性) * 自定义属性 * 例子 * <input type='text' id='d1' data-ac1='value'> * 语法 data-attr=value * 简洁方式 * node.dataset.attr * * js修改css样式 * 内联 * 获取node.style.attr * 修改node.style.attr=value * 清除node.style.attr='' * 清除所有node.style.cssText=''; * 内联样式使用如下方式 * background-color(css里面的) * js中需要使用如下 * backgroundColor * * 获取元素最终样式 * var strle=getComputedStyle(node) * 它是计算后的 * style.attr * ie8 node.currentStyle; * 创建和删除节点 * var node=document.createElement(标签名) * 设置元素属性 * node.id=value * node.innerHTML='' * 新元素追加到现有节点上 * 追加appendChild(node) * 添加insertBefore(node,oldNode) * 替换replaceChilde(node,oldNode) * 追加子元素appendChild(node); * 添加 insertBefore(node,old) * 在新元素添加到旧元素前 * 替换 replaceChild(node,old) * 将新元素替换成旧元素的值 * * 文档片段(提升效率) * var d=document.createDocumentFragment()创建 * 添加 d.appendChild(document.createElement(标签)) * 一次性添加多个 * document.body.appendChild(d) * 删除元素 * removeChild(子元素) * * * * * * * */ var sum=0; for(var i=0;i<101;i++){ if(i%3!=0){ sum+=i } } console.log(sum); //跳出多重循环 //自定义 标签名,例子// fu: for(var s=0;s<100;s++){// for(var b=0;b<100;b++){// break fu;// }// }
js基础例子dom+原型+oop基础知识记录01的更多相关文章
- 深入浅出DOM基础——《DOM探索之基础详解篇》学习笔记
来源于:https://github.com/jawil/blog/issues/9 之前通过深入学习DOM的相关知识,看了慕课网DOM探索之基础详解篇这个视频(在最近看第三遍的时候,准备记录一点东西 ...
- JS原型函数相关基础知识
函数对象和普通对象 //普通对象 var oo1 = {}, oo2 = new Object(), oo3 = []; console.log(typeof oo1 + ',' + typeof o ...
- JS基础——构造函数VS原型
JS是一种基于对象的语言.在使用过程中不免遇到复制对象的问题.但通常我们採用的直接赋值'obj1=obj2'这样的做法会出现数据覆盖问题. 也就是对象引用过程中引用地址一致.导致对象数据被改动的问题. ...
- 前端总结·基础篇·JS(一)原型、原型链、构造函数和字符串(String)
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...
- 面向对象(OOP)--OOP基础与this指向详解
前 言 学过程序语言的都知道,我们的程序语言进化是从“面向机器”.到“面向过程”.再到“面向对象”一步步的发展而来.类似于汇编语言这样的面向机器的语言,随着时代的发展已经逐 ...
- 前端基础之DOM和BOM
前端基础之DOM和BOM JavaScript分为 ECMAScript,DOM,BOM. BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏 ...
- redis+thinkphp5的注册、登陆、关注基础例子
最近初步接触redis,结合thinkphp5与redis,写了一个用户注册的基础例子,用于学习. 这个例子是结合了兄弟连的redis视频,最后两节的内容写的:https://study.163.co ...
- Ext OOP基础
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Dom探索之基础详解
认识DOM DOM级别 注::DOM 0级标准实际并不存在,只是历史坐标系的一个参照点而已,具体的说,它指IE4.0和Netscape Navigator4.0最初支持的DHTML. 节点类型 注:1 ...
随机推荐
- Java 多字段排序Comparator(兼容Date,Integer,Doubel,Long)
Java 反射类:ReflexUtil public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexU ...
- solr 3.5 配置及server设置
一.solr 的简单介绍 Apache Solr 是一个开源的搜索server.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.Apache Solr 中 ...
- google login page
</pre><pre name="code" class="html"><div class="container&qu ...
- Eclipse中如何安装和使用GrepCode插件
GrepCode(GC)Eclipse插件允许Eclipse用户在Eclipse IDE中搜索由GrepCode提供的工厂类.本教程介绍如何安装和使用插件.使用Eclipse3.5(Galileo)的 ...
- Tooltip(提示框)组件
一.加载方式 //class加载方式 <a href="http://www.ycku.com" title="这是一个提示信息!" class=&quo ...
- IPointCollection,ISegmentCollection和IGeometryCollection
Engine 提供了三个主要的几何图形集合接口用于对几何对象的操作,分别是 IPointCollection,ISegmentCollection 和 IGeometryCollection,这些接口 ...
- protected访问修饰符
子类可以调用, 但实例化的对像不可调用 new object;
- Struts2 过滤器与拦截器
学习Struts2时,发现有过滤器和拦截器,他们貌似都是一样的功能,但是为什么会有2个不同的名称呢?肯定是有区别的,所以打算自己整理一下. 过滤器,是在java web中,你传入的request,re ...
- Typecho中文验证码Captcha插件
前言实在是受不了每天都要删除掉上百条的垃圾评论,干脆自己做了个验证码插件,顺带做的完善了些,分享给大家. 本插件是在评论验证码插件基础上完善而来.所不同的是,采用了最新的securimage 3.0. ...
- ./configure 时候报错c++ 编译器不能执行
./configure时报错:configure: error: C++ compiler cannot create executables .哎,今天重装测试服务器上的系统,设置好IP可以远程访问 ...