自己总结的javascript基础知识
为了面试自己写的概要,参考文献:《javascript高级程序设计》
1、选择符API
*querySelector()
querySelector()接收一个css选择符,返回与选择符匹配的第一个元素,如果没有就返回null。
当用document调用它的时候,在所有的document元素中查找,
如果用元素调用这个方法,就会在元素所有后代元素中查找。
若果匹配到不合法的css选择符,就是报错。
*querySelectorAll()
querySelector()接收一个css选择符,与querySelectorAll()一样,它返回的是一个满足css选择符的NodeList,
同样,也可以用document和元素调用它,如果没有找到匹配的选择符,则返回一个空的NodeLIst,如果
css选择符不合法,则会抛出错误。
*matchesSelector()
matchesSelector()方法接收一个css选择符,它可以返回调用元素是否与该选择符匹配,所以
它的返回值是布尔类型,如果可以匹配则返回true,若果不匹配则返回false。
matchesSelector()一般可以用来检查所选元素能不能被querySelector()和querySelectorAll()返回,
但浏览器并不能很好的支持matchesSelector,IE9+可以支持msMatchesSelector(),
Firefox3.6+可以支持mozMatchesSelector,Chrome支持webkitMatchesSelector(),所以需要自己封装一个方法:
function matchesSelector(element,selector){
if(element.matchesSelector){
return element.matchesSelector(selector);
}else if(element.msMatchesSelector){
return element.msMatchesSelector(selector);
}else if(element.mozMatchesSelector){
return element.mozMatchesSelector(selector);
}else if(element.webkitMatchesSelector){
return element.webkitMatchesSelector(selector);
}else{
throw new Error("浏览器不支持");
}
}
2、javaScript中的节点属性
*节点属性:
nodeType 每个节点都有,返回值分别为1~12的的整数,代表不同的节点类型
parentNode 指向每个节点的父节点,只有一个。
childNodes 返回一个元素的所有子节点。
previousSibling 返回当前节点的上一个兄弟节点,如果当前节点是childNodes中的第一个节点,则返回null。
nextSibling 返回当前节点的下一个兄弟节点,如果当前节点是childNodes中的最后一个节点,则返回null。
*操作节点:
appendChild() 插入节点,并且被插入的节点作为父节点的最后一个子节点。即被插入节点的nextSibling为nulll;
insertBefore() 插入节点,但是insertBefore("","")接收两个参数,第一个参数是被插入的节点,第二个参数是参照节点,
执行完insertBefore后,被插入的节点将会作为参照的节点的上一个兄弟节点被插入(即previousSibling),
第二个参数也可以是null,这样就达到了和appendChild()相同的效果。
replaceChild() 替换节点,replaceChild()接收两个参数,第一个参数为要插入的节点,第二个参数为要替换的节点,
被替换的节点仍然存在于文档中,但却失去了在文档中的位置。
removeChild() 移除节点,removeChild()接收一个参数,就是被移除的节点,该方法的返回值为被移除的节点。被移除的节点
仍然存在于文档中,但是却失去了在文档中的位置。
*document节点
document存在的属性:
document.URL 取得当前页面完整的URL
document.domain 取得当前页面的域名
document.referrer 取得当前页面的来源页面地址,如果没有返回空字符串
3、HTML5中的自定义数据属性
HTML5中规定为元素添加非标准的属性时要加上前缀data-,目的是为元素提供与渲染无关的信息,或单纯是为了语义信息,可以随便添加
只要以data-开头即可。然后可以通过dataset来访问响应的值,并且用dataset取值的时候属性名没有了data-前缀,如果属性为data-myname
则只需要用 Selector.dataset.myname即可。
4、HTML5中插入标记的三种方式
*innerHTML
在读的模式下,innerHTML会返回调用它的元素的所有子节点的HTML代码。
在写的模式下,innerHTML接收一段html代码作为参数,会根据制定的参数创建新的DOM树,然后用新的DOM树替换原来的DOM树。
*outerHTMl
在读得模式下,outerHTML会返回包括调用它的元素和所有子节点的全部HTML标记。
在写的模式下,相当于根据参数创建新的DOM树,然后替换包括调用该方法在内的DOM树。
转换为代码就是:
div.outerHTML("<p>this is text</p>");
var p = document.createElement('p');
p.append(document.createTextNode('this is text'));
div.parentNode.replace(p,div);
*insertAdjacentHTML()方法
接收两个参数,第一个参数是要插入的位置,第二个参数是要插入的元素。
第一个参数为beforebegin,表示在当前元素前插入一个同辈元素。
第一个参数为afterbegin,
自己总结的javascript基础知识的更多相关文章
- Javascript基础知识总结一
Javascript基础知识总结一 <!DOCTYPE html> <html> <head lang="en"> <meta chars ...
- 学习javascript基础知识系列第二节 - this用法
通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...
- 学习javascript基础知识系列第三节 - ()()用法
总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...
- JavaScript 基础知识 - BOM篇
前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...
- (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识
开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...
- JavaScript基础知识整理
只整理基础知识中关键技术,旨在系统性的学习和备忘. 1.在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN ...
- Jquery源码中的Javascript基础知识(三)
这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: (function( window, undefined ) { // code 定义变量 jQuery = fun ...
- JavaScript基础知识从浅入深理解(一)
JavaScript的简介 javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互. javascript是由三部分组成:ECMAScript.DO ...
- JavaScript基础知识必知!!!
JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. JS作用:表单验证,减轻服务端的压力:添加页面动画效果:动态更改页面内容:Ajax网络请求. 下面简单介 ...
- javascript基础知识笔记-自用
笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...
随机推荐
- Selenium2+python自动化37-爬页面源码(page_source)
前言 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息.selenium的page_source方法可以获取到页面源码. selenium的page_sour ...
- docker Redis的主从配置
redis是k-v型nosql数据库,支持字符串(string).列表(list).集合(set).散列(hash).有序集合(zset:形如member:score的散列集合,其中member为成员 ...
- java操作mongodb时,对象bean和DBObject相互转换的方法
package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...
- struts2 select 默认选中
jsp: <s:select list="#{'1':'男','2':'女'}" name="sex"/> action: private Stri ...
- dwz ajax session超时跳转登录页(struts2自定义拦截器)
1.定义struts2拦截器(网上例子很多) 代码如下: package rt.intercepter; import java.util.Map; import javax.servlet.http ...
- HBase性能优化方法总结(转)
原文链接:HBase性能优化方法总结(一):表的设计 本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. ...
- iOS:UIToolBar、toolbarItems、BarButtonItem的几种关系
工具栏:ToolBar 工具栏项目:Bar Button Item 调节按钮位置的固定调节:Fixed Space Bar Button Item 调节按钮位置的灵活调节:Flexible Space ...
- Java:字符串类简单的正则表达式
class Test { public static void main(String[] args) { String str = "xia..as....yuan.com"; ...
- is-subsequence
public class Solution { public boolean isSubsequence(String s, String t) { int idx = 0; for (int i=0 ...
- 第十二章 springboot + mongodb(复杂查询)
简单查询:使用自定义的XxxRepository接口即可.(见 第十一章 springboot + mongodb(简单查询)) 复杂查询:使用MongoTemplate以及一些查询条件构建类(Bas ...