JavaScript基础概念笔记

js特点

        1 交互性 、

        2 安全性  js不能访问本地磁盘的文件

3 跨平台性 又要能支持js的浏览器  都可以支持

java 和js的区别 

1 java是sun执行公司开发 oracle js是网景公司
2 js是基于对象 java面向对象
3 java是强类型语言 js 是弱类型的语言
4 java语言运行需要先编译成字节码文件 
js只需要解析就可以

js 的组成  

1 ECMAScropt   ECMA :欧洲计算机协会 制定的js语法 
2 BOM broswer object medol 浏览器对象模型
3 DOM document object medol   文档对象模型
使用方式
<script type="text/javascript"></script>
<script type="text/javascript" src="xx.js"></script>
使用引入外部js文件时 标签内不要再写代码了  不会执行的
原始类型 String  字符串 var str="abc"
number 数字类型 var m=123
boolean ture和false var flag= ture
null  var date =new date()  获取对象的引用  null待变空
undifined 定义一个变量 没有赋值
typeof() 查看变量类型
js的语句
if判断语句 
switch语句
循环语句
js的运算符  js中部区分小数整数  所以1/100=0.01
   字符串的加和java一样  减时执行减法的运算不是数字是提示NaN
    boolean  中true=1 false=0
==  和 === 区别
==比较的是值 
===比较是值和数据类型

js的数组

1 var arr = [1,2,3,4];
2 内置Array对象 var arr=new Array(5)  定义一个数组长度为5
3 使用内置对象 var arr=new Array(1,2,3); 定义一个数组内容为1,2,3

js的函数 

1  function 方法名(参数列表){
方法体
返回值(可有可无,根据具体情况)
}
2 匿名函数
  var add= function(参数列表){
方法体
返回值
js的全局变量和局部变量
全局变量:在标签内定义一个变量 整个页面js部分都可以使用
局部变量:只能在方法内部使用
}
js放置的位置 一般放在《/boby》 后
js String
方法 与和html相关的方法
bold()是字符串加粗
fontcolor()字体颜色
fontsize ()1-7字体大小
link(地址)显示成超链接
sub 下标(飘) sup 上标 
     与java相似的方法
concat()连接字符串
chatAt()返回指定位置的字符
indexof()检索字符位置 不存在返回-1
split() 分割字符串成数组
replace(“原始”,“替换”) 替换字符串 
substr(“位置”,长度) 提取位置长度的字符
substring(“开始截取的位置”,“结束后的位置”)

js的Array对象

concat() 连接数组 
join()根据一个指定字符分割数组 代替逗号分隔数组
push()向数组末尾添加元素 返回新长度
pop()删除并返回最后一个元素
reverse()颠倒数组中元素的顺序

js的Date对象

toLocaleString()中国传统时间格式
获取当前年 getFullYear()
获取当前月 (返回的是0-11)(getMonth()+1)
获取当前星期 getDay() 星期日是0
获取当前天 getdate()
获取当前小时 getHours()
获取当前分钟 getMinues()
获取当前秒 getSeconds()
返回1970.1.1至今的毫秒数 getTime()

js的Math对象(静态方法)

math.abs()绝对值
ceil()向上舍入
floor()向下舍入
round()四舍五入
random()随机数
pow(“数字”,“次方”)X次方
sqrt() 平方
PI圆周率

js的全局函数

不属于任何一个函数 直接写名称使用
eval():执行js代码(如果字符串是一个js代码,使用方法直接方法)
encodeURL() decodeURL()对字符进行编码/解码
isNaN()判断字符串是否是数字   是数字--》false
parseint()转类型
js里不存在重载 但是可以通过替他方式模拟重载
把传递的参数保存在数组里
function add(a,b){
   arguments
return a+b;
}

js的BOM broswer object medol 浏览器对象模型

navigator: 获取客户机的信息(浏览器的信息)
navigator.appName 返回浏览器名称
screen: 屏幕的信息
screen.height 屏幕的高
location: 请求的url地址
href 获取请求的地址   
location.href 获取请求地址
设置url地址
给个按钮可以跳转到另一个页面
(方法中写)location.href
history 请求的URL的历史记录
history.back() 上一个页面
history.forword()下一个页面
history.go() 指定页面
window()窗口对象  顶层对象(所有的bom对象都是window里面操作的)
window.confirm("是否删除")返回值(确定-true  取消-false)
prompt输入对话框 prompt(“提示文本内容”,“默认值”)
open(url,name,feature(窗口特征 宽高),repalce)打开一个新的窗口
close()关闭窗口(浏览器兼容性较差)
定时器
setInterval(“js函数”,“时间(毫秒)”)每xx毫秒执行一次js函数
setTimeout(“js”函数,“时间(毫秒)”)在xx时间后执行函数,只执行一次
clearInterval(setinterval的返回值):清除setinterval定时器
cleartimeout(settimeout的返回值):清除settimeout定时器
opener 返回创建这个窗口的窗口  window--》user(得到window)

js的DMO document object medol   文档对象模型

·文档 超文本标记文档 html xml
·对象 属性和方法
·模型 使用属性和方法操作超文本标记行文档
document html文档对象
element  标签对象
属性对象
文本对象
Node节点对象 这些对象的父对象 找不到要的方法在这里寻找
   解析过程
根据html 的层级结构,在内存中分配一个树形结构 
把每个对象封装成对象
   DHTML 很多技术的简称 
html:封装数据
css: 使用属性和属性值谁之样式
DOM: 操作html文档
javascript 专门指的是js的语法语句
   document对象 每一个载入的html文档都是document对象
getElementById() 通过id得到元素标签
write() 向页面输出变量值 向页面输出html代码
getElementsByName() 通过name得到返回对象集合
注意地方 只有一个标签 这个标签只能用name得到,返回的不是集合
getElementsByTagName() 同byname 
谷歌浏览器不支持浏览本地文件

Node对象属性一

* nodeName 
* nodeType
* nodeValue


* 使用dom解析html时候,需要html里面的标签,属性和文本都封装成对象


* 标签节点对应的值
nodeType: 1
nodeName: 大写标签名称  比如SPAN
nodeValue: null
* 属性节点对应的值
nodeType: 2
nodeName: 属性名称
nodeValue: 属性的值
* 文本节点对应的值
nodeType: 3
nodeName: #text
nodeValue: 文本内容

Node对象的属性二

* 父节点
- ul是li的父节点
- parentNode
- //得到li1
var li1 = document.getElementById("li1");
//得到ul
var ul1 = li1.parentNode;
alert(ul1.id);


* 子节点
- li是ul的子节点
- childNodes:得到所有子节点,但是兼容性很差


- firstChild:获取第一个子节点
- //获取ul的第一个子节点 id=li1
//得到ul
var ul1 = document.getElementById("ulid");
//第一个子节点
var li1 = ul1.firstChild;
alert(li1.id);
- lastChild:获取最后一个子节点
//得到最后一个子节点
var li4 = ul1.lastChild;
alert(li4.id);


* 同辈节点
- li直接关系是同辈节点
- nextSibling: 返回一个给定节点的下一个兄弟节点。
previousSibling:返回一个给定节点的上一个兄弟节点。


- //获取li的id是li3的上一个和下一个兄弟节点
var li3 = document.getElementById("li3");
//alert(li3.nextSibling.id);
alert(li3.previousSibling.id);


操作dom树

** appendChild方法
- 添加子节点到末尾
- 特点:类似于剪切黏贴的效果

** insertBefore(newNode,oldNode)方法
- 在某个节点之前插入一个新的节点
- 两个参数
* 要插入的节点
* 在谁之前插入
- 插入一个节点,节点不存在,创建
1、创建标签
2、创建文本
3、把文本添加到标签下面
- 代码
/*
1、获取到li13标签
2、创建li
3、创建文本
4、把文本添加到li下面
5、获取到ul
6、把li添加到ul下面(在<li>貂蝉</li>之前添加 <li>董小宛</li>)
*/
//获取li3 标签
var li13 = document.getElementById("li13");
//创建li
var li15 = document.createElement("li");
//创建文本
var text15 = document.createTextNode("董小宛");
//把文本添加到li下面 appendChild
li15.appendChild(text15);
//获取到ul
var ul21 = document.getElementById("ulid21");
//在<li>貂蝉</li>之前添加 <li>董小宛</li> 
//insertBefore(newNode,oldNode)
ul21.insertBefore(li15,li13);

*** 不存在 没有insertAfter()方法


** removeChild方法:删除节点
- 通过父节点删除,不能自己删除自己
- /*
1、获取到li24标签
2、获取父节点ul标签
3、执行删除(通过父节点删除)
*/
//获取li标签
var li24 = document.getElementById("li24");
//获取父节点
//两种方式  1、通过id获取 ; 2、通过属性 parentNode获取
var ul31 = document.getElementById("ulid31");
//删除(通过父节点)
ul31.removeChild(li24);

** replaceChild(newNode,oldNode)方法: 替换节点
- 不能自己替换自己,通过父节点替换
- 两个参数
** 第一个参数:新的节点(替换成的节点)
** 第二个参数:旧的节点(被替换的节点)
- 代码
/*
1、获取到li34
2、创建标签li
3、创建文本
4、把文本添加到li下面
5、获取ul标签(父节点)
6、执行替换操作 (replaceChild(newNode,oldNode))
*/
//获取li34
var li34 = document.getElementById("li34");
//创建li
var li35 = document.createElement("li");
//创建文本
var text35 = document.createTextNode("张无忌");
//把文本添加到li下面
li35.appendChild(text35);
//获取ul
var ul41 = document.getElementById("ulid41");
//替换节点
ul41.replaceChild(li35,li34);

** cloneNode(boolean): 复制节点
- //把ul列表复制到另外一个div里面
/*
1、获取到ul
2、执行复制方法 cloneNode方法复制 true
3、把复制之后的内容放到div里面去
** 获取到div
** appendChild方法
*/
//获取ul
var ul41 = document.getElementById("ulid41");
//复制ul,放到类似剪切板里面
var ulcopy = ul41.cloneNode(true)
//获取到div
var divv = document.getElementById("divv");
//把副本放到div里面去
divv.appendChild(ulcopy);


** 操作dom总结

* 获取节点使用方法
getElementById():通过节点的id属性,查找对应节点。
getElementsByName():通过节点的name属性,查找对应节点。
getElementsByTagName():通过节点名称,查找对应节点
* 插入节点的方法
insertBefore方法:在某个节点之前插入
appendChild方法:在末尾添加,剪切黏贴
* 删除节点方法
removeChild方法:通过父节点删除
* 替换节点方法
replaceChild方法:通过父节点替换

 innerHTML  属性

这个属性不是DOM的组成部分,但是大多数浏览器都支持的属性
作用:获取文本的内容
     向标签里面设置内容(可以是html代码)

猜你喜欢

转载自blog.csdn.net/zhww1996/article/details/80705234