一、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 元素的标准。

根据 DOM,HTML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
整个文档是一个文档节点(document)
每个 HTML 标签是一个元素节点
包含在 HTML 元素中的文本是文本节点
每一个 HTML 属性是一个属性节点
注释属于注释节点
 
Node层次
节点彼此都有等级关系。
HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档(document)节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。
 
Html Dom常用方法:
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主要知识轮廓笔记的更多相关文章

  1. 前端三件套 HTML+CSS+JS基础知识内容笔记

    HTML基础 目录 HTML基础 HTML5标签 doctype 标签 html标签 head标签 meta标签 title标签 body标签 文本和超链接标签 标题标签 段落标签 换行标签 水平标签 ...

  2. JS基础知识笔记

    2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...

  3. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...

  4. js便签笔记(10) - 分享:json2.js源码解读笔记

    1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...

  5. js便签笔记(10) - 分享:json.js源码解读笔记

    1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...

  6. 前端学习:JS面向对象知识学习(图解)

    前端学习:JS面向对象知识学习(图解) 前端学习:JS(面向对象)代码笔记 JS面向对象图解知识全览 创建类和对象 方式1:使用Object()函数 方式2:使用自变量 方式3:使用工厂函数 创建多个 ...

  7. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  8. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  9. Node.js高级编程读书笔记Outline

    Motivation 世俗一把,看看前端的JavaScript究竟能做什么. 顺便检验一下自己的学习能力. Audience 想看偏后台的Java程序员关于前端JavaScript的认识的职业前端工程 ...

随机推荐

  1. IOS - IOS之同步请求、异步请求、GET请求、POST请求

    1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然 ...

  2. ArcGIS Engine 连接SQL Server并建立关联

    IWorkspaceFactory  pWFactory=new OLEDBWorkspaceFactory(); IPropertySet  pPropertySet=new  PropertySe ...

  3. 隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码

    上篇介绍了隐马尔科夫模型 本文给出关于问题3解决方法,并给出一个例子的python代码 回顾上文,问题3是什么, 下面给出,维比特算法(biterbi) algorithm 下面通过一个具体例子,来说 ...

  4. 隐马尔科夫模型 介绍 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 ...

  5. php 23种设计模式的趣味解释

    http://wenku.baidu.com/link?url=GwvuvSOdJneZQc-DSKoGmPcxTtzn3cdtIp3fRaCNbkg1zJDZZZTx2NwEK5IsqU996fG3 ...

  6. VS2012 Build相关

    最近写了一个小程序,用到了一些关于build方面的内容,google后,记录一下 1. VS工程下的bin和obj文件夹,bin文件夹下的debug和release文件夹,以及其中的文件 大家可以参考 ...

  7. Android开发之注解式框架ButterKnife的使用

    ButterKnife官网 其实ButterKnife的注解式,与xUtils的ViewUtils模块基本上差不多,只要用过xUtils,这个框架基本上就会了. 一.原理. 最近发现一个很好用的开源框 ...

  8. 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 ...

  9. sdut 1570 c旅行

    用搜索(bfs,dfs)做了半天,都超时,原来是dp; 参考博客:http://www.cnblogs.com/liuzezhuang/archive/2012/07/29/2613820.html ...

  10. input之placeholder与行高的问题。

    我们实现一个输入框的视觉的时候为了保持其各种各样的兼容性: 1.鼠标要跟文字一样高度. 2.文字要居中对齐. 3.还要有placeholder 第一个目标,当实现一个高度为40像素的高度输入框时,为了 ...