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 ...
随机推荐
- @JoinTable和@JoinColumn
默认情况下,JPA 持续性提供程序在映射多对多关联(或在单向的一对多关联中)的拥有方上的实体关联时使用一个连接表.连接表名称及其列名均在默认情况下指定,且 JPA 持续性提供程序假设:在关系的拥有方上 ...
- 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作
一 QT的内存管理 1 QT中的内存管理是QObject来管理的 2 QT中的内存管理没有cocos2dx中的引用计数 3 组件能够指定父对象 QTimer *timer = QTime ...
- 使用zTree控件制作的表格形式的树形+数据菜单
測试了一下,兼容ie7以上, chrome opera ff 不使用对方css /*------------------------------------- zTree Style version: ...
- [小技巧][ASP.Net MVC Hack] 使用 HTTP 报文中的 Header 字段进行身份验证
在一些 Web 系统中,身份验证是依靠硬件证书进行的:在电脑上插入 USB 证书,浏览器插件读取证书的相关信息,然后在发送 HTTP 登录请求时顺便在 Header 字段附加上身份信息.服务器端处理这 ...
- DataGrid( 数据表格) 组件[1]
本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...
- 《第一行代码》学习笔记35-服务Service(2)
1.Android的UI线程不安全,想要更新应用程序里的UI元素,则须在主线程中进行,否则会出现异常. 2.Android不允许在子线程里进行UI操作,对于该情况,Android提供了一套异步消息处理 ...
- iOS9新特性之UIStackView
同iOS以往每个迭代一样,iOS 9带来了很多新特性.UIKit框架每个版本都在改变,而在iOS 9比较特别的是UIStackView,它将从根本上改变开发者在iOS上创建用户界面的方式.本文将带你学 ...
- java 判断对象是否是某个类的类型方法
class Do1 { public static void main(String[] args) { AA a=new CC(); if(a instanceof CC) { CC b=(CC)a ...
- include,include_once,require,require_once的区别
1.include,require在其被调用的位置处包含一个文件. 2.include_once,require_once函数的作用与include相同,不过它会首先验证是否已包含该文件.如果已经包含 ...
- ARP协议的报文格式 转自n哖苡逅
ARP协议的报文格式 结构ether_header定义了以太网帧首部:结构arphdr定义了其后的5个字段,其信息用于在任何类型的介质上传送ARP请求和回答:ether_arp结构除了包含arphdr ...