js主要知识轮廓笔记
一、js中的基础类型和引用类型:
基础类型:
1、Number
2、String
3、Boolean
4、Undefined
5、Null
引用类型(内置对象):
1、Object类型
2、Array类型
3、Date类型
4、Regexp类型(字面量表示法:/[bc]at/i 构造函数方法:new RegExp("[bc]at","i") 标志有:g/i/m 实例方法:exec("要验证的字符串") 匹配上就返回一个数组,匹配不上就返回个null )
5、Function类型(内部属性:this、arguments;函数属性:length、prototype;函数方法:call()、apply())
6、基本包装类型(Boolean类型、Number类型、String类型)
7、单体内置对象(Global、Math)
(备注:创建引用类型实例往往有构造函数方法和字面量表示法两种)
二、BOM
目录:
1、window对象
2、location对象
3、navigator对象
4、screen对象
5、history对象
1、window对象
双重角色:js访问浏览器的窗口的一个接口和Global对象,全局作用域中声明的变量和函数都会变成window对象的属性和方法。页面中涉及框架的<frameset>/<frame>的,每个框架都对应一个window(详见js高级编程)
浏览器窗口的位置: window.screenLeft/window.screenTop 或 window.screenX/window.screenY
超时调用:
var timeoutID=setTimeout(function(){alert("123");}, 1000);
//取消超时调用
clearTimeout(timeoutID);
间歇调用:
var intervalID=setInterval(function(){alert("44");}, 2000);
//停止
clearInterval(intervalID);
系统对话框:浏览器通过这些方法可以调用系统对话框,与网页无关,不包含html,且是同步的,显示对话框的时候代码会停止执行,关闭时又会开始执行。
alert("1243"); 弹出消息 用户只能选择关闭。
var r=confirm("确定干什么吗?"); //返回bool值, 确定返回true 取消返回false
var t=var b=prompt("你是谁?", "龍四"); //确定返回值 取消返回 null
2.location对象(window.location):(概述)是最有用的BOM对象之一,提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能(将url解析为独立的片段,可以通过不同的属性访问这些片段),并且该对象就是window的属性也是document对象的属性(即二者引用的都是同一个对象)。
{
ancestorOrigins: DOMStringList
assign: function () { [native code] }
hash: ""
host: "10.1.56.197:2014" //返回服务器名称和端口号(如果有的话)
hostname: "10.1.56.197" //返回不带端口号的服务器名称
href: "http://10.1.56.197:2014/Test/21.html" //返回当前加载页面的完整url,(location对象的tostring方法也返回此值)
origin: "http://10.1.56.197:2014"
pathname: "/Test/21.html" //返回url中的目录和文件名
port: "2014" //端口号
protocol: "http:" //协议
reload: function reload() { [native code] }
replace: function () { [native code] }
search: "" //返回查询字符串 以?开头 ,如 ?name=lxf&age=25
toString: function toString() { [native code] }
valueOf: function valueOf() { [native code] }
__proto__: Location
}
从location.search中获取查询字符串对象:
function getQueryStringArgs () {
// 获取查询字符串参数,去除该字符串问号开关符号
var qs=location.search.length>0?location.search.substring(1):"",
args={},//存放所有查询字符串参数对
items=qs.split("&"),
len=items.length,
name=null,
value=null;
if(qs.length==0) {
alert("没有查询字符串,提前退行!");
return;
};
for(var i=0;i<len;i++){
item=items[i].split("=");
name=decodeURIComponent(item[0]);
value=decodeURIComponent(item[1]);
args[name]=value;
}
return args;
}
location这些属性可读可写的,并且每次修改locaton的属性(除了hash外),页面都会以新url重新加载。
改变url的几种方法
location.assign("http://www.baidu.com") //下面两个方法也是调用此方法的
location="http://www.baidu.com";
location.href="http://www.baidu.com";
//下面这种不会在浏览器中产生历史记录,所以后退按钮无用
location.replace("http://www.baidu.com");
最后一个与位置有关的操作:
重写加载,即刷新:
location.reload() //有可能从浏览器缓存中加载
location.reload(true) //从服务器中重新加载
其它几个不常用的DOM对象navigator 、 screen 、history在这里就不一一介绍了 ,用到时 可以参考下JS高级编程。
三、DOM
处理可扩展标志语言(xml、html)的标准编程接口。(以一种独立于平台和语言的方式访问和修改一个文档的内容和结构)
(
什么是 DOM?
DOM 是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:
"W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。"
W3C DOM 标准被分为 3 个不同的部分:
- 核心 DOM - 针对任何结构化文档的标准模型
- XML DOM - 针对 XML 文档的标准模型
- HTML DOM - 针对 HTML 文档的标准模型
)
HTML DOM 是:
- HTML 的标准对象模型
- HTML 的标准编程接口
- W3C 标准
HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。
换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。
| getElementById() | 返回带有指定 ID 的元素。 |
| getElementsByTagName() | 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。 |
| getElementsByClassName() | 返回包含带有指定类名的所有元素的节点列表。 |
| appendChild() | 把新的子节点添加到指定节点。 |
| removeChild() | 删除子节点。 |
| replaceChild() | 替换子节点。 |
| insertBefore() | 在指定的子节点前面插入新的子节点。 |
| createAttribute() | 创建属性节点。 |
| createElement() | 创建元素节点。 |
| createTextNode() | 创建文本节点。 |
| getAttribute() | 返回指定的属性值。 |
| setAttribute() | 把指定属性设置或修改为指定的值。 |
Html Dom常用属性:
innerHtml属性 返回元素的内容(包括html元素和文本)
innerText属性 返回元素包含的文本(不包括html,包括后代元素的文本和自身的文本)
上面两个属性只有元素节点有,文本节点这两个属性没有,即为 undefined
nodeValue 属性规定节点的值。
- 元素节点的 nodeValue 是 undefined 或 null
- 文本节点的 nodeValue 是文本本身
- 属性节点的 nodeValue 是属性值
nodeType 属性返回节点的类型。nodeType 是只读的。元素1 属性2 文本3 注释8 文档9
想知道Dom元素的全部属性和方法,可参考,http://www.w3cschool.cc/jsref/dom-obj-all.html
HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。
Html Dom事件大全:http://www.w3cschool.cc/jsref/dom-obj-event.html
Dom对象也是支持链式编程的。
Dom导航:通过一个已知的Dom元素以及和目标元素的关系找到目标元素:
通常需要使用的3个属性:parentNode(父节点)、firstChild(第一个子节点,备注:也可能是文本节点) 以及 lastChild(最后一个子节点)
previousElementSibling(同一级的上一个元素,没有返回null)
nextElementSibling(同一级的下一个元素,没有返回null)
修改 HTML DOM 意味着许多不同的方面:
- 改变 HTML 内容
- 改变 CSS 样式
- 改变 HTML 属性
- 创建新的 HTML 元素
- 删除已有的 HTML 元素
- 改变事件(处理程序)
四、js中的this
全局环境中:this;//指window对象;
函数调用:foo(); //this指的也是window对象;
作为对象方法调用时:test.foo(); //this指向对象本身 test
当使用 Function.prototype 上的 call 或者 apply 方法时,函数内的 this 将会被 显式设置为函数调用的第一个参数。
在构造函数中,this指向新创建的对象本身。
js主要知识轮廓笔记的更多相关文章
- 前端三件套 HTML+CSS+JS基础知识内容笔记
HTML基础 目录 HTML基础 HTML5标签 doctype 标签 html标签 head标签 meta标签 title标签 body标签 文本和超链接标签 标题标签 段落标签 换行标签 水平标签 ...
- JS基础知识笔记
2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...
- Underscore.js 源码学习笔记(下)
上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...
- js便签笔记(10) - 分享:json2.js源码解读笔记
1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...
- js便签笔记(10) - 分享:json.js源码解读笔记
1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...
- 前端学习:JS面向对象知识学习(图解)
前端学习:JS面向对象知识学习(图解) 前端学习:JS(面向对象)代码笔记 JS面向对象图解知识全览 创建类和对象 方式1:使用Object()函数 方式2:使用自变量 方式3:使用工厂函数 创建多个 ...
- 【09-23】js原型继承学习笔记
js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...
- [JS复习] JS 基础知识
项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display :inline or bloc ...
- Node.js高级编程读书笔记Outline
Motivation 世俗一把,看看前端的JavaScript究竟能做什么. 顺便检验一下自己的学习能力. Audience 想看偏后台的Java程序员关于前端JavaScript的认识的职业前端工程 ...
随机推荐
- IOS - IOS之同步请求、异步请求、GET请求、POST请求
1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然 ...
- ArcGIS Engine 连接SQL Server并建立关联
IWorkspaceFactory pWFactory=new OLEDBWorkspaceFactory(); IPropertySet pPropertySet=new PropertySe ...
- 隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码
上篇介绍了隐马尔科夫模型 本文给出关于问题3解决方法,并给出一个例子的python代码 回顾上文,问题3是什么, 下面给出,维比特算法(biterbi) algorithm 下面通过一个具体例子,来说 ...
- 隐马尔科夫模型 介绍 HMM python代码
#HMM Forward algorithm #input Matrix A,B vector pi import numpy as np A=np.array([[0.5,0.2,0.3],[0.3 ...
- php 23种设计模式的趣味解释
http://wenku.baidu.com/link?url=GwvuvSOdJneZQc-DSKoGmPcxTtzn3cdtIp3fRaCNbkg1zJDZZZTx2NwEK5IsqU996fG3 ...
- VS2012 Build相关
最近写了一个小程序,用到了一些关于build方面的内容,google后,记录一下 1. VS工程下的bin和obj文件夹,bin文件夹下的debug和release文件夹,以及其中的文件 大家可以参考 ...
- Android开发之注解式框架ButterKnife的使用
ButterKnife官网 其实ButterKnife的注解式,与xUtils的ViewUtils模块基本上差不多,只要用过xUtils,这个框架基本上就会了. 一.原理. 最近发现一个很好用的开源框 ...
- The Impact of Garbage Collection on Application Performance
As we’ve seen, the performance of the garbage collector is not determined by the number of dead obje ...
- sdut 1570 c旅行
用搜索(bfs,dfs)做了半天,都超时,原来是dp; 参考博客:http://www.cnblogs.com/liuzezhuang/archive/2012/07/29/2613820.html ...
- input之placeholder与行高的问题。
我们实现一个输入框的视觉的时候为了保持其各种各样的兼容性: 1.鼠标要跟文字一样高度. 2.文字要居中对齐. 3.还要有placeholder 第一个目标,当实现一个高度为40像素的高度输入框时,为了 ...