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的认识的职业前端工程 ...
随机推荐
- AAC ADTS AAC LATM 格式分析
http://blog.csdn.net/tx3344/article/details/7414543# 目录(?)[-] ADTS是个啥 ADTS内容及结构 将AAC打包成ADTS格式 1.ADTS ...
- java 串口通信 代码
下面是我自己实现的串口接收的类,串口发送比较简单,就直接发送就可以了.下面的这个类可以直接使用. package com.boomdts.weather_monitor.util; import ja ...
- 第二个C语言代码
有问题,还没找出哪里出错了 输入一串字符,问号结束 统计1~9各出现的次数 ******************************************************** ...
- Linux 阿里云挂载新分区
阿里云服务器可以自己购买数据盘并挂载使用,虽然官方也提供了挂载的教程,但是还是有些朋友不清楚其中的细节,为此,我在这里来给大家分享一下详细的挂载办法. 工具/原料 已经购买开通阿里云服务器,并且在开通 ...
- A过的题目
1.TreeMap和TreeSet类:A - Language of FatMouse ZOJ1109B - For Fans of Statistics URAL 1613 C - Hardwood ...
- 97. Interleaving String
题目: Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given: ...
- 修改VMware Workstation 界面语言
修改方法 我安装的VMware版本是10,找到VMware安装目录,我的是C:\Program Files\VMware\VMware Workstation\messages,里面有ja和zh-cn ...
- (转)linux 技巧:使用 screen 管理你的远程会话
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html 你是不是经常需要 SSH 或者 telent 远程登录到 Li ...
- ubuntu12.04升级后找不到共享目录
备注:采用VMware-workstation 10 更新命令:sudo apt-get update 今天开始搭建Android开发环境,先升级系统,升级后发现windows和ubuntu共享的目录 ...
- git svn rebase出现了checksum mismatch的错误
http://stackoverflow.com/questions/3156744/git-svn-rebase-checksum-mismatch This solution was the on ...