目录
一、DOM概念
二、节点层次
三、Node类型
四、Document类型
五、Element类型
六、Text类型
八、CDATASection类型
九、DocumentType类型
十、DocumentFragment类型
十一、Attr类型
十二、表格DOM
十三、总结中的小结
一、DOM概念
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口)。DOM将HTML页面描绘成一个层次化的节点树,允许开发人员添加、移除和修改页面的某一部分。
1998年DOM1级 规范称为W3C的推荐标准。DOM1级 为基本文档结构及查询提供了接口,DOM1级 的目标主要是映射文档的结构。
IE、Firefox、Safari、Chrome和Opera都非常完善地实现了DOM。
二、节点层次
DOM可以将任何HTML或XML文档描绘成一个由多层节点 构成的结构。
节点分为几种不同的类型,每种类型分别标识文档中不同的信息及标记。
每个节点都拥有各自的特点、数据和方法,另外也与其他节点存在某种关系。
所有页面标记表现为一个以特定节点为根节点的树形结构,文档节点 就是每个文档的根节点。
文档节点只有一个子节点,即元素,称为文档元素 ,文档元素是文档的最外层元素。
三、Node类型
DOM1级定义了一个Node接口 ,该接口在JavaScript中是作为Node类型 实现的。
JavaScript中的所有节点类型都继承自Node类型,因此所有节点类型都共享着相同的基本属性和方法 。
1、属性
节点类型由Node类型中定义的下列12个数值常量来表示:
Node.ELEMENT_NODE(1)
Node.ATTRIBUTE_NODE(2)
Node.TEXT_NODE(3)
Node.CDATA_SELECTION_NODE(4)
Node.ENTITY_REFERENCE_NODE(5)
Node.PROCESSING_INSTRUCTION_NODE(7)
Node.COMMENT_NODE(8)
Node.DOCUMENT_NODE(9)
Node.DOCUMENT_TYPE_NODE(10)
Node.DOCUMENT_FRAGMENT_NODE(11)
Node.NOTATION_NODE(12)
nodeName —— 节点名
nodeValue —— 节点值
childNodes —— 返回保存子节点的NodeList对象
parentNode —— 指向父节点
firstChild —— 指向第一个子节点
lastChild —— 指向最后一个子节点
previousSibling —— 指向前一个兄弟节点
nextSibling —— 指向后一个兄弟节点
ownerDocument —— 指向文档节点
2、方法
hasChildNodes() —— 是否包含子节点
appendChild(newNode) —— 在子节点末尾添加新节点
insertBefore(newNode, someNode) —— 在某个子节点前添加一个新的子节点
replaceChild(newNode, oldNode) —— 使用新节点替换旧节点
removeChild(someNode) —— 删除某个节点
cloneNode() | cloneNode(true) —— 浅复制,即只复制节点本身 | 深复制,即复制节点及其整个子节点树
normalize() —— 删除空文本节点或者合并相邻的文本节点
四、Document类型
JavaScript通过Document类型表示文档。
在浏览器中,document对象 是HTMLDocument (继承自Document类型 )的一个实例,表示整个HTML页面。
而且,document对象是window对象 的一个属性
1、Document节点的特征
nodeType的值是9
nodeName的值为"#document"
nodeValue的值为null
parentNode的值为null
ownerDocument的值为null
2、属性
documentElement —— 指向元素,即文档元素
body —— 指向元素
doctype —— 指向文档类型标签
title —— 包含元素中的文本
URL —— 包含页面完整的URL
domain —— 包含页面的域名
referrer —— 保存着链接到当前页面的那个页面的URL
anchors —— 包含文档中所有带有name特性的元素
forms —— 包含文档中所有的
images —— 包含文档中所有的 元素
links —— 包含文档中所有带href特性的元素
3、方法
getElementById() —— 使用元素id获取该元素对象
getElementsByTagName() —— 返回对应标签名元素组成的HTMLCollection对象
getElementsByName() —— 返回对应name特性的元素组成的NodeList对象
implementation.hasFeature(功能,版本号) —— 监测浏览器支持的功能和版本
write() | writeln() —— 写入文档
open() —— 打开网页的输出流
close() —— 关闭网页的输出流
createElement() —— 创建元素节点
createTextNode() —— 创建文本节点
createComment() —— 创建注释节点
createCDataSection() —— 创建CDATASection节点
createDocumentFragment() —— 创建文档片段节点
createAttribute() —— 创建特性节点
五、Element类型
所有HTML元素都由HTMLElement 类型表示,不是直接通过这个类型,也是通过它的子类型来表示。
HTML类型直接继承自Element 并添加了一些属性。
Element类型提供了对元素标签名、子节点及特性的访问。
1、ELEMENT节点的特征
nodeType的值为1
nodeName的值为元素的标签名
nodeValue的值为null
parentNode可能是Document或Element
2、属性
只有公认的(非自定义的)特性才会以属性的形式添加到DOM对象中。
style特性通过getAttribute()访问时,返回的style特性值中包含的是CSS文本,而通过style属性来访问它则会返回一个对象。
onclick特性通过getAttribute()访问时,返回的onclick特性值总包含的是相应代码的字符串,而通过onclick属性来访问它则返回相应的函数
id —— 元素在文档中的唯一标识符
title —— 有关元素的附加说明信息,一般通过工具提示条显示出来
className —— 与元素的class特性对应,即为元素指定的css类
style —— 与元素的style特性对应
onclick —— 与元素的onclick特性对应
attributes ‘—— 保存元素的各个特性
attributes属性的各个方法:
getNamedItem(name) —— 返回nodeName属性等于name的节点
removeNamedItem(name) —— 从列表移除nodeName属性等于name的节点
setNamedItem(node) —— 向列表中添加节点,以节点的nodeName属性为索引
item(pos) —— 返回位于数字pos位置处的节点
3、方法
setAttribute(attr, value) —— 设置元素的特性
getAttribute(att) —— 获取元素的特性
removeAttribute(attr) —— 移除元素的特性
setAttributeNode() —— 添加特性节点
getAttributeNode() —— 获取特性节点
六、Text类型
文本节点由Text类型 表示,包含的是可以按照字面解释的纯文本内容。
纯文本中可以包含转义后的HTML字符,但不能包含HTML代码。
1、Text节点的特征
nodeType的值为3
nodeName的值为"#text"
nodeValue的值为节点所包含的文本
parentNode是一个Element
不支持(没有)子节点
2、属性
data —— 可以通过nodeValue属性或data属性访问文本节点中包含的文本
length —— 文本节点中字符的数目
3、方法
appendData(text) —— 将text添加到节点的末尾
deleteData(offset,count) —— 从offset指定的位置开始删除count个字符
insertData(offset,text) —— 在offset指定的位置插入text
replaceData(offset, count, text) —— 用text替换从offset指定的位置开始到offset+count为止处的文本
splitText(offset) —— 从offset指定的位置将当前文本节点分成两个文本节点
substringData(offset, count) —— 提取从offset指定的位置开始到offset+count为止处的字符串
注释在DOM中是通过Comment类型来表示的。
1、Comment节点的特征
nodeType的值为8
nodeName的值为"#comment"
nodeValue的值是注释的内容
parentNode可能是Document或Element
不支持(没有)子节点
2、属性和方法
Comment类型与Text类型继承自相同的基类,因此它拥有除splitText()之外的所有字符串操作方法。
与Text类型相似,也可以通过nodeValue或data属性来取得注释的内容。
八、CDATASection类型
CDATASection类型只针对基于XML 的文档,表示的是CDATA区域。
1、CDATASection节点的特征
nodeType的值为4
nodeName的值为"#cdata-section"
nodeValue的值是CDATA区域中的内容
parentNode可能是Document或Element
不支持(没有)子节点
2、属性和方法
CDATASection类型继承自Text类型,因此拥有除splitText()之外的所有字符串操作方法。
九、DocumentType类型
DocumentType包含着与文档的doctype有关的所有信息
1、DocumentType节点的特征
nodeType的值为10
nodeName的值为doctype的名称
nodeValue的值为null
parentNode是Document
不支持(没有)子节点
2、属性
十、DocumentFragment类型
DOM规定文档片段(document fragment)是一种“轻量级”的文档,可以包含和控制节点,但不会像完整的文档那样占用额外的资源。
可以将文档片段作为一个“仓库”来使用,即可以在里面保存将来可能会添加到文档中的节点。
1、DocumentFragment节点的特征
nodeType的值为11
nodeName的值为"#document-fragment"
nodeValue的值为null
parentNode的值为null
子节点可以是Element、ProcessingInstruction、Comment、Text、CDATASection或EntityReference
十一、Attr类型
元素的特性在DOM中以Attr类型 来表示。
尽管Attr节点也是节点,但它们却不被认为是DOM文档树的一部分。
1、Attr节点的特征
nodeType的值为2
nodeName的值是特性的名称
nodeValue的值是特性的值
parentNode的值为null
在HTML中不支持(没有)子节点
2、属性
name —— 特性名称
value —— 特性的值
specified —— 用于区别特性是在代码中指定的,还是默认的
十二、表格DOM
1、元素的属性和方法
caption —— 保存着对元素(如果有)的指针
tBodies —— 是一个元素的HTMLCollection
tFoot —— 保存着对元素(如果有)的指针
tHead —— 保存着对元素(如果有)的指针
rows —— 是一个表格中所有行的HTMLCollection
createTHead() —— 创建元素,将其放到表格中,返回引用
createTFoot() —— 创建元素,将其放到表格中,返回引用
createCaption() —— 创建元素,将其放到表格中,返回引用
deleteTHead() —— 删除元素
deleteTFoot() —— 删除元素
deleteCaption() —— 删除元素
deleteRow(pos) —— 删除指定位置的行
insertRow(pos) —— 向row集合中的指定位置插入一行
2、元素的属性和方法
rows —— 保存着元素中行的HTMLCollection
deleteRow(pos) —— 删除指定位置的行
insertRow(pos) —— 向rows集合中的指定位置插入一行,返回对新插入行的引用
3、元素的属性和方法
cells —— 保存着元素中单元格的HTMLCollection
deleteCell(pos) —— 删除指定位置的单元格
insertCell(pos) —— 向cells集合中的指定位置插入一个单元格,返回对新插入单元格的引用
十三、总结中的小结
最基本的节点类型是Node ,用于抽象地表示文档中一个独立的部分;所有其他类型都继承自Node。
Document 类型表示整个文档,是一组分层节点的根节点。在JavaScript中,document对象是Document的一个实例。使用document,有很多中方式可以查询和取得节点。
Element 节点表示文档中的所有HTML或XML元素,可以用来操作这些元素的内容和特性。
另外还有一些节点类型,分别表示文本内容、注释、文档类型、CDATA区域和文档片段。
你可能感兴趣的:(Javascript)
【JavaScript】异步编程汇总
秀秀_heo
JavaScript javascript 开发语言 ecmascript
异步编程解决方案:回调函数PromiseGeneratorawait/async回调函数回调函数是早期处理异步编程的主要方式,虽然它本身存在很多的缺陷,比如那个时候对于复杂的异步处理常常会出现回调地狱。但是因为JavaScript中当时并没有很好的API来帮助我们以比较优雅的方式编写代码,所以依然应用非常广泛。functionfetchData(url,callback){setTimeout((
使用 MySQL 从 JSON 字符串提取数据
m0_66323401
面试 学习路线 阿里巴巴 mysql json oracle
使用MySQL从JSON字符串提取数据在现代数据库管理中,JSON格式因其灵活性而广泛使用。然而,当数据存储在JSON中时,我们经常需要将其转换为更易于处理的格式。本篇文章将通过一个具体的SQL查询示例,展示如何从存储在MySQL中的JSON字符串提取数据并重新格式化。1.背景知识JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器
Vue3 + Moveable + Selecto 拖拽组件 Demo
巧克力力克巧!
学习积累 vue.js javascript 前端
一、项目概述本demo旨在通过Vue3、Moveable和Selecto三个库的结合,实现一个基本的拖拽组件功能。通过Selecto实现元素的选择功能,通过Moveable控制选中元素的大小和位置。同时,封装了hooks以实现元素与数据之间的绑定,使得操作更加灵活和可维护。二、技术栈Vue3:用于构建用户界面的渐进式JavaScript框架。Moveable:一个可以拖拽、缩放、旋转DOM元素的库
学习使用Elm架构的JavaScript项目
陈昊和
学习使用Elm架构的JavaScript项目learn-elm-architecture-in-javascript:unicorn:LearnhowtobuildwebappsusingtheElmArchitecturein"vanilla"JavaScript(step-by-stepTDDtutorial)!项目地址:https://gitcode.com/gh_mirrors/le/le
学习Elm架构在JavaScript中的应用
萧书泓
学习Elm架构在JavaScript中的应用learn-elm-architecture-in-javascript:unicorn:LearnhowtobuildwebappsusingtheElmArchitecturein"vanilla"JavaScript(step-by-stepTDDtutorial)!项目地址:https://gitcode.com/gh_mirrors/le/le
探索Redux:构建可预测、可测试的JavaScript应用
黎杉娜Torrent
探索Redux:构建可预测、可测试的JavaScript应用learn-redux:boom:ComprehensiveNotesforLearning(howtouse)ReduxtomanagestateinyourWeb/Mobile(React.js)Apps.项目地址:https://gitcode.com/gh_mirrors/le/learn-redux项目介绍在现代Web开发中,J
探索Elm架构:用纯JavaScript构建优雅的Web应用
邵瑗跃Free
探索Elm架构:用纯JavaScript构建优雅的Web应用learn-elm-architecture-in-javascript:unicorn:LearnhowtobuildwebappsusingtheElmArchitecturein"vanilla"JavaScript(step-by-stepTDDtutorial)!项目地址:https://gitcode.com/gh_mirro
[失业前端恶补算法]JavaScript leetcode刷题top100(六):字母异位词分组、最长连续序列、找到字符串中所有字母异位词、最大子数组和、除自身以外数组的乘积
摸鱼老萌新
失业前端恶补算法 前端 javascript 动态规划 算法 哈希
专栏声明:只求用最简单的,容易理解的方法通过,不求优化,不喜勿喷49.字母异位词分组题面给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。知识点:哈希表、排序思路这里用了js语言的一个小技巧,我们可以使用split这个api将字符串变成字符的数组,之后我们对得到的数组进行排序,这样字母异位词得到了结果字符串的一致的,
Vue.js 新手必看:5个趣味小案例快速理解数据绑定原理
云资社
VUE vue.js 前端 javascript
Vue.js是一个渐进式JavaScript框架,用于构建用户界面。其核心特性之一是数据绑定,它允许开发者通过简单的声明式语法将数据与DOM元素绑定在一起。这种双向数据绑定机制使得数据更新和视图更新变得非常直观和高效。本文将通过5个趣味小案例,帮助Vue.js新手快速理解数据绑定的原理和实现方式。案例1:简单的文本绑定目标将输入框中的内容实时显示在页面上。实现代码Vue数据绑定-文本绑定输入框内容
vue3 ref/reactive 修改数组的方法
取啥好
vue vue.js javascript 前端
import{ref}from'vue'//给每个todo对象一个唯一的idletid=0constnewTodo=ref('')consttodos=ref([{id:id++,text:'LearnHTML'},{id:id++,text:'LearnJavaScript'},{id:id++,text:'LearnVue'}])functionaddTodo(){todos.value.pu
C#中的动态类型用法总结带演示代码
yuanpan
c# windows microsoft
在C#中,dynamic类型是一种特殊的类型,它允许你在编译时绕过类型检查,而是在运行时解析类型。这使得你可以编写更灵活的代码,但也增加了运行时错误的风险。dynamic类型通常用于与动态语言(如Python、JavaScript)交互,或者处理一些在编译时无法确定类型的场景。1.基本用法你可以使用dynamic关键字来声明一个动态类型的变量。这个变量在编译时不会进行类型检查,而是在运行时根据实际
JavaScript网页设计案例:动态天气预报页面
静默.\\
javascript 开发语言
在这个案例中,我们将创建一个简单的网页,该网页能够根据用户输入的城市名称显示当前的天气情况。这个项目不仅将帮助我们理解如何使用JavaScript进行DOM操作和事件处理,还将介绍如何通过API获取实时数据。1.准备工作首先,你需要注册一个免费的天气API服务(如OpenWeatherMap),以获取API密钥。这将允许你访问其服务器上的天气数据。2.HTML结构让我们从基本的HTML结构开始:D
解析浏览器中JavaScript与Native交互原理:以WebGPU为例
ttod_qzstudio
JavaScript JavaScript WebGPU
引言随着Web应用复杂度的提升,开发者对浏览器访问本地硬件能力的需求日益增长。然而,浏览器必须在开放性与安全性之间找到平衡——既不能放任JavaScript(JS)随意操作系统资源,又要为高性能计算、图形渲染等场景提供支持。WebGPU的出现正是这一矛盾的解决方案之一。作为新一代Web图形API,WebGPU允许JS以接近原生(Native)的方式操作GPU,同时严格遵循浏览器的安全模型。本文将结
在Vue中使用highlight.js代码高亮
技术驱动者
javascript vue.js 前端 js
代码高亮是在网页开发中常见的需求之一,它可以使代码在页面上以不同的颜色或样式进行突出显示,提高可读性。highlight.js是一个流行的JavaScript库,它提供了丰富的语法高亮功能,支持多种编程语言和模板语言。本文将介绍如何在Vue项目中使用highlight.js来实现代码高亮的效果。步骤1:安装highlight.js首先,我们需要安装highlight.js库。在Vue项目的根目录下
Vue.js 配置 Babel、Webpack 和 ESLint
轻口味
VUE.JS 入门与实践 vue.js webpack 前端
Vue.js配置Babel、Webpack和ESLint今天我们来聊聊如何配置Babel、Webpack和ESLint,这三个工具在现代前端开发中扮演着重要角色。它们分别负责代码转译、模块打包和代码质量检测,合理配置它们能大大提高项目的开发效率和质量。下面我将详细介绍它们的作用,并提供具体的配置示例。1.Babel配置Babel主要用于将现代JavaScript(ES6+)代码转译为兼容性更好的版
如何使用Three.js制作3D月球与星空效果
软件工程师文艺
前端 javascript 3d html
目录1.基本设置2.创建星空效果3.创建月球模型4.添加中文3D文字5.光照与相机配置6.动画与控制7.响应式布局8.结语在本文中,我们将一起学习如何利用Three.js实现一个3D月球与星空的效果,并添加一些有趣的元素,比如中文3D文字和互动功能。Three.js是一个强大的JavaScript库,它简化了WebGL的使用,使得在网页上进行3D图形渲染变得更加容易。我们将逐步分析代码,帮助大家理
Github 2024-06-20 开源项目日报 Top10
老孙正经胡说
github 开源 Github趋势分析 开源项目 Python Golang
根据GithubTrendings的统计,今日(2024-06-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目4TypeScript项目4Rust项目2JavaScript项目1Dart项目1Java项目1Go项目1RustDesk:用Rust编写的开源远程桌面软件创建周期:1218天开发语言:Rust,Dart协议类型:GNUAfferoG
阮一峰的ES6文档(第一天)
jackzhuoa
es6 javascript 前端
目录ECMAScript6简介let和const命名let基本用法-块级作用域不存在变量提升不允许重复声明暂时性死区为什么需要块级作用域?原因一:内层变量可能会覆盖外层变量原因二:用来计数的循环遍历泄露为全局变量const基本用法-声明只读的常量与let命令相同点let和const使用建议ECMAScript6简介ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准,
vue和Django快速创建项目
CCSBRIDGE
了解Vue vue.js 前端 javascript
一、VUE1.创建Vue3+JavaScript项目npmcreatevite@latest项目名称----templatevue创建Vue3+TypeScript项目npmcreatevite@latest项目名称----templatevue-ts2.然后cd项目名称npminstallnpminstallaxios#发送API请求npminstallpinia#Vue3推荐的状态管理库npm
JavaScript前端性能优化技巧分享
代码旅人博客
前端 javascript 性能优化
在前端开发中,性能优化是一个持续不断的追求。随着Web应用的日益复杂,如何确保应用的流畅性和响应速度,成为了每个前端开发者必须面对的问题。JavaScript作为前端的核心语言,其性能优化更是至关重要。本文将分享一些JavaScript前端性能优化的技巧,帮助开发者提升Web应用的性能。一、减少DOM操作DOM(文档对象模型)操作是JavaScript中常见的性能瓶颈之一。频繁的DOM操作会导致浏
【Node-Red】Function节点教学
零炻大礼包
Node-Red 笔记 node.js
本篇来讲在Node-Red中编写函数时用到的一个至关重要的节点:function。function节点允许消息运行JavaScript代码。其中部分内容来自官方文档翻译:function节点用户指南。Function节点教学1.变量定义2.返回值1)返回单条数据进阶1进阶22)返回多条数据3.其他变量定义1)数组定义buffer2.Array4.运算符1)算数运算符2)赋值运算符3)字符与运算符4
JavaScript 内置对象-Math对象
難釋懷
javascript 开发语言
在JavaScript中,Math对象提供了一系列与数学相关的静态方法和属性,帮助开发者执行复杂的计算任务。无论是简单的算术运算还是高级的几何、统计计算,Math对象都能提供强大的支持。本文将详细介绍Math对象的主要功能及其使用方法。一、简介不同于其他全局对象,Math不是一个构造函数,而是一个静态对象。这意味着我们不能通过new关键字创建Math的实例,所有的属性和方法都必须直接调用Math来
JavaScript内置对象
難釋懷
javascript 开发语言
JavaScript提供了一套丰富的内置对象,这些对象为开发者提供了处理数据、操作日期时间、执行数学运算等众多功能的强大工具。掌握这些内置对象不仅能够提高代码的效率,还能让开发过程更加简洁流畅。本文将详细介绍一些常用的JavaScript内置对象及其使用方法。一、Object对象Object是JavaScript中所有对象的基类。每个对象都是直接或间接地继承自Object.prototype。它提
Vue和React的区别
挨踢女孩y
vue.js react.js javascript 前端 css webpack ecmascript
组件开发方式:Vue使用单文件组件(SFC),HTML,JS和CSS在一个文件内实现exportdefault{//JavaScript代码}.my-component{/*CSS样式*/}React使用JSX和JavaScriptimportReactfrom'react';import'./MyComponent.css';functionMyComponent(){return({/*JSX
React VS Vue
懒人村杂货铺
前端
React和Vue是目前最流行的两个前端框架,它们在设计理念、生态系统和开发体验上各有特点。以下是对React和Vue的全方位对比:1.核心设计理念React库而非框架:React是一个用于构建UI的库,专注于视图层,其他功能(如路由、状态管理)需要借助第三方库。函数式编程:推崇组件化、函数式编程,强调不可变性和单向数据流。JSX:使用JSX语法,将HTML和JavaScript结合在一起。Vue
疯狂前端面试题(四)
吃蛋糕的居居
前端 html5 ajax 正则表达式 javascript firefox chrome
一、Ajax、JSONP、JSON、Fetch和Axios技术详解1.Ajax(异步JavaScript和XML)什么是Ajax?Ajax是一种用于在不刷新页面的情况下与服务器进行数据交互的技术。它通过`XMLHttpRequest`对象实现。优点-支持同步和异步请求。-能够发送和接收多种格式的数据(如JSON、XML等)。缺点-原生代码较复杂。-不支持跨域请求(需要服务器配置CORS或使用JSO
JavaScript实现拖动窗口功能详解
滚菩提哦呢
本文还有配套的精品资源,点击获取简介:本教程深入讲解了如何通过JavaScript实现拖动窗口功能,涵盖了原生方法和面向对象(OOP)的封装技术,以及确保代码在主流浏览器(包括IE6、Firefox和Chrome)中的兼容性。教程提供详细代码示例,从基础的原生拖动方法到利用OOP封装的Droppable类,再到特殊浏览器的兼容性处理,使读者能够掌握全面的拖动窗口实现技巧。1.JavaScript拖
JavaScript窗口大小变化事件:window.resize
星际编程喵
探索Spring的奇妙世界 javascript 前端 html vue.js react.js 前端框架 html5
1.前言在Web开发中,JavaScript是一种强大的脚本语言,它可以与HTML和CSS一起使用,为用户提供交互性和动态性的体验。其中,window.addEventListener("resize")事件是一个常用的事件之一,用于在浏览器窗口大小发生变化时触发相应的操作。本文将深入介绍这个事件的相关内容。2.简介window.resize事件是浏览器提供的一种事件,用于监听窗口大小的改变。这意
javascript高级试题
BiBbo
1024程序员节
1.判断为数组类型的4种方式Array.isArray()typeofinstanceofconstructor2.判断对象是否包含特定的自身(非继承)属性hasOwnProperty()3.改变this的3种方式,他们有什么相同点和不同点call、bind、apply这三个函数的第一个参数都是this的指向对象,第二个参数差别就来了:call的参数是直接放进去的,第二第三第n个参数全都用逗号分隔
JavaScript考核详解
青青青青草地
javascript 开发语言 ecmascript
文章目录JavaScript考核详解一、请简述var,let,const的区别?二、解释垃圾回收机制,垃圾回收的方式?三、以下代码的输出是什么?四、this的指向五、实现数组扁平化六、实现数组去重七、JS中的基本类型JavaScript考核详解一、请简述var,let,const的区别?块级作用域:块级作用域有大括号{}包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决
java类加载顺序
3213213333332132
java
package com.demo;
/**
* @Description 类加载顺序
* @author FuJianyong
* 2015-2-6上午11:21:37
*/
public class ClassLoaderSequence {
String s1 = "成员属性";
static String s2 = "
Hibernate与mybitas的比较
BlueSkator
sql Hibernate 框架 ibatis orm
第一章 Hibernate与MyBatis
Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。
MyBatis 参考资料官网:http:
php多维数组排序以及实际工作中的应用
dcj3sjt126com
PHP usort uasort
自定义排序函数返回false或负数意味着第一个参数应该排在第二个参数的前面, 正数或true反之, 0相等usort不保存键名uasort 键名会保存下来uksort 排序是对键名进行的
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8&q
DOM改变字体大小
周华华
前端
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
c3p0的配置
g21121
c3p0
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0的下载地址是:http://sourceforge.net/projects/c3p0/这里可以下载到c3p0最新版本。
以在spring中配置dataSource为例:
<!-- spring加载资源文件 -->
<bean name="prope
Java获取工程路径的几种方法
510888780
java
第一种:
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“
在类Unix系统下实现SSH免密码登录服务器
Harry642
免密 ssh
1.客户机
(1)执行ssh-keygen -t rsa -C "xxxxx@xxxxx.com"生成公钥,xxx为自定义大email地址
(2)执行scp ~/.ssh/id_rsa.pub root@xxxxxxxxx:/tmp将公钥拷贝到服务器上,xxx为服务器地址
(3)执行cat
Java新手入门的30个基本概念一
aijuans
java java 入门 新手
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合
Memcached for windows 简单介绍
antlove
java Web windows cache memcached
1. 安装memcached server
a. 下载memcached-1.2.6-win32-bin.zip
b. 解压缩,dos 窗口切换到 memcached.exe所在目录,运行memcached.exe -d install
c.启动memcached Server,直接在dos窗口键入 net start "memcached Server&quo
数据库对象的视图和索引
百合不是茶
索引 oeacle数据库 视图
视图
视图是从一个表或视图导出的表,也可以是从多个表或视图导出的表。视图是一个虚表,数据库不对视图所对应的数据进行实际存储,只存储视图的定义,对视图的数据进行操作时,只能将字段定义为视图,不能将具体的数据定义为视图
为什么oracle需要视图;
&
Mockito(一) --入门篇
bijian1013
持续集成 mockito 单元测试
Mockito是一个针对Java的mocking框架,它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望 行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。
&nb
精通Oracle10编程SQL(5)SQL函数
bijian1013
oracle 数据库 plsql
/*
* SQL函数
*/
--数字函数
--ABS(n):返回数字n的绝对值
declare
v_abs number(6,2);
begin
v_abs:=abs(&no);
dbms_output.put_line('绝对值:'||v_abs);
end;
--ACOS(n):返回数字n的反余弦值,输入值的范围是-1~1,输出值的单位为弧度
【Log4j一】Log4j总体介绍
bit1129
log4j
Log4j组件:Logger、Appender、Layout
Log4j核心包含三个组件:logger、appender和layout。这三个组件协作提供日志功能:
日志的输出目标
日志的输出格式
日志的输出级别(是否抑制日志的输出)
logger继承特性
A logger is said to be an ancestor of anothe
Java IO笔记
白糖_
java
public static void main(String[] args) throws IOException {
//输入流
InputStream in = Test.class.getResourceAsStream("/test");
InputStreamReader isr = new InputStreamReader(in);
Bu
Docker 监控
ronin47
docker监控
目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路。 1、关于监控的内容 监控宿主机本身
监控宿主机本身还是比较简单的,同其他服务器监控类似,对cpu、network、io、disk等做通用的检查,这里不再细说。
额外的,因为是docker的
java-顺时针打印图形
bylijinnan
java
一个画图程序 要求打印出:
1.int i=5;
2.1 2 3 4 5
3.16 17 18 19 6
4.15 24 25 20 7
5.14 23 22 21 8
6.13 12 11 10 9
7.
8.int i=6
9.1 2 3 4 5 6
10.20 21 22 23 24 7
11.19
关于iReport汉化版强制使用英文的配置方法
Kai_Ge
iReport汉化 英文版
对于那些具有强迫症的工程师来说,软件汉化固然好用,但是汉化不完整却极为头疼,本方法针对iReport汉化不完整的情况,强制使用英文版,方法如下:
在 iReport 安装路径下的 etc/ireport.conf 里增加红色部分启动参数,即可变为英文版。
# ${HOME} will be replaced by user home directory accordin
[并行计算]论宇宙的可计算性
comsci
并行计算
现在我们知道,一个涡旋系统具有并行计算能力.按照自然运动理论,这个系统也同时具有存储能力,同时具备计算和存储能力的系统,在某种条件下一般都会产生意识......
那么,这种概念让我们推论出一个结论
&nb
用OpenGL实现无限循环的coverflow
dai_lm
android coverflow
网上找了很久,都是用Gallery实现的,效果不是很满意,结果发现这个用OpenGL实现的,稍微修改了一下源码,实现了无限循环功能
源码地址:
https://github.com/jackfengji/glcoverflow
public class CoverFlowOpenGL extends GLSurfaceView implements
GLSurfaceV
JAVA数据计算的几个解决方案1
datamachine
java Hibernate 计算
老大丢过来的软件跑了10天,摸到点门道,正好跟以前攒的私房有关联,整理存档。
-----------------------------华丽的分割线-------------------------------------
数据计算层是指介于数据存储和应用程序之间,负责计算数据存储层的数据,并将计算结果返回应用程序的层次。J
&nbs
简单的用户授权系统,利用给user表添加一个字段标识管理员的方式
dcj3sjt126com
yii
怎么创建一个简单的(非 RBAC)用户授权系统
通过查看论坛,我发现这是一个常见的问题,所以我决定写这篇文章。
本文只包括授权系统.假设你已经知道怎么创建身份验证系统(登录)。 数据库
首先在 user 表创建一个新的字段(integer 类型),字段名 'accessLevel',它定义了用户的访问权限 扩展 CWebUser 类
在配置文件(一般为 protecte
未选之路
dcj3sjt126com
诗
作者:罗伯特*费罗斯特
黄色的树林里分出两条路,
可惜我不能同时去涉足,
我在那路口久久伫立,
我向着一条路极目望去,
直到它消失在丛林深处.
但我却选了另外一条路,
它荒草萋萋,十分幽寂;
显得更诱人,更美丽,
虽然在这两条小路上,
都很少留下旅人的足迹.
那天清晨落叶满地,
两条路都未见脚印痕迹.
呵,留下一条路等改日再
Java处理15位身份证变18位
蕃薯耀
18位身份证变15位 15位身份证变18位 身份证转换
15位身份证变18位,18位身份证变15位
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 201
SpringMVC4零配置--应用上下文配置【AppConfig】
hanqunfeng
springmvc4
从spring3.0开始,Spring将JavaConfig整合到核心模块,普通的POJO只需要标注@Configuration注解,就可以成为spring配置类,并通过在方法上标注@Bean注解的方式注入bean。
Xml配置和Java类配置对比如下:
applicationContext-AppConfig.xml
<!-- 激活自动代理功能 参看:
Android中webview跟JAVASCRIPT中的交互
jackyrong
JavaScript html android 脚本
在android的应用程序中,可以直接调用webview中的javascript代码,而webview中的javascript代码,也可以去调用ANDROID应用程序(也就是JAVA部分的代码).下面举例说明之:
1 JAVASCRIPT脚本调用android程序
要在webview中,调用addJavascriptInterface(OBJ,int
8个最佳Web开发资源推荐
lampcy
编程 Web 程序员
Web开发对程序员来说是一项较为复杂的工作,程序员需要快速地满足用户需求。如今很多的在线资源可以给程序员提供帮助,比如指导手册、在线课程和一些参考资料,而且这些资源基本都是免费和适合初学者的。无论你是需要选择一门新的编程语言,或是了解最新的标准,还是需要从其他地方找到一些灵感,我们这里为你整理了一些很好的Web开发资源,帮助你更成功地进行Web开发。
这里列出10个最佳Web开发资源,它们都是受
架构师之面试------jdk的hashMap实现
nannan408
HashMap
1.前言。
如题。
2.详述。
(1)hashMap算法就是数组链表。数组存放的元素是键值对。jdk通过移位算法(其实也就是简单的加乘算法),如下代码来生成数组下标(生成后indexFor一下就成下标了)。
static int hash(int h)
{
h ^= (h >>> 20) ^ (h >>>
html禁止清除input文本输入缓存
Rainbow702
html 缓存 input 输入框 change
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录。
如果不想让浏览器缓存input的值,有2种方法:
方法一: 在不想使用缓存的input中添加 autocomplete="off";
<input type="text" autocomplete="off" n
POJO和JavaBean的区别和联系
tjmljw
POJO java beans
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规
java中单例的五种写法
liuxiaoling
java 单例
/**
* 单例模式的五种写法:
* 1、懒汉
* 2、恶汉
* 3、静态内部类
* 4、枚举
* 5、双重校验锁
*/
/**
* 五、 双重校验锁,在当前的内存模型中无效
*/
class LockSingleton
{
private volatile static LockSingleton singleton;
pri