js基础

JS

js全称呼:JavaScript 是一种解释行语言

DOM:文档对象模型。 0级DOM也被称为BOM

                           window
   document    loaction(当前页面的url)  history(以前访问的页面地址)          navigator(浏览器类型,版本兼容)-----

任何没有指明对象的方法调用默认指向window(window.alert()==alert)

web添加js


2//js文件的后缀是.js。但是实际情况代码文件可以是任何的后缀,浏览器都会当成js
兼容

使用html 风格的注释可以放置老版本的浏览器将其当做源码


赋值

var productNmae(驼峰命名)=“Hello!”

三种弹出框:

  • alert()
  • answer=confirm()—确定/取消 返回true/false
  • answer=prompt(,)----可以输入信息 有值返回值无值返回第二个默认输入内容

history

  • history.length访问过页面的数量
  • history.forward()/.backward() 前、后
  • history.go(-1)跳转到历史记录相应的位置
    • history.go(“example.com”)历史列表第一个匹配的url

location

  • location.href
  • location.protocol
  • location.host
  • location.hostname
  • location.port
  • location.pathname
  • location.search
  • location.hash
    • 两种导航至新页面的方法
      • location.href="www.baidu.com;(原始页面保留在历史记录)
      • location.replace(“www.baidu.com”);(被新的URL代替)
    • location.reload(true) // 绕过缓存,从服务器上重新下载该文档
    • document.location.assign(url);跳转的该页面

navigator

  • appName

  • appCodeName

  • appVersion

  • Language

  • cookieEnabled

  • cpuClass

  • onLine

  • Platform

日期时间
var mydate = new Date()
var year = mydate.getFullYear() //四位数字表示年份
var month = mydate.getMonth() //月份 0~11 0表示1月
var date = mydate.getDate() //日期 1~31
var day = mydate.getDay()  //星期,0~6 0是星期日
var hours = mydate.getHours()  //小时 0~23
var minutes = mydate.getMinutes()  //分,0~56
var seconds = mydate.getSeconds() //秒 0~56
math

math对象可以不用创建就使用

  • 方法
  • ceil()
  • floor()
  • round()
  • random()
  • max()
  • min()
  • 数学常数
  • E 自然对数的底 2.178
  • LN2
  • LN10
  • LOG2E
  • PI
  • SQRT1_2 2的平方根的倒数
  • SQRT2 2的平方根
with(math){
	var myRand = random();//默认方法的代码块与math关联
}
数据类型

数值

  • 整数
  • 浮点数
  • 非数值NaN
    • parseInt()/parseFloat()
  • infinity无穷大
  • 字符串
    • concat()(返回新字符串)
    • indexOf()/lastIndexOf()
    • replace()
    • split()//返回新的对象
    • substr()
    • tolowCase/toUpperCase()
  • 布尔值
  • 数值nulll=0,字符null=“”,布尔值null=false;
数组
var mayArry = new Arry();
var mayArry=[];
初始化
var myArry=['12','12'];
var mayArry=[];
myArry[0]='12';
myArry[1]='12';
属性
myArry.length;
  • concat()//返回新的数组

  • join("-")返回以-连接的数组字符串

  • myArry.join();//1212
    myArry.join('-');//12-12
    
  • tostring() 返回以,分隔的数组字符串

  • indexOf()

  • lastIndexOf()

  • slice(index,num)//提取数组的子集.返回一个数组

    myArry.slice(0,1)//1
    
  • sort()

  • splice(index,howmany,[new elements])//删除起始地址,个数,添加的新元素,返回值为删除的数,是个数组

程序控制
if()
x=2//赋值
if(x=='2')//true,字符串被解释为数值2
if(x==='2')//false,数值类型不同
if(){

}else{

};
(条件)? ture:false;
switch(){
	case :
		语句
		break;
	case :
		语句
		break;
    default :
    	语句
}
**循环语句**
while(){

}
do{

}while();
for(){

}
for( i in day)//对象集里面循环

定时器

cleartime=setTimeout(action,delay);

cleartime=setInterval(action,delay);

面向对象

myNewObject=new Object();//创建空白对象
mynewObject.info="11111111";//添加属性
/*function myFunction(){
alert(this.info);
}
myNewObject.showInfo=myFunction;//函数关联到对象是不用括号,否则就是执行函数返回值赋予*/
myNewObject.showInfo=function() {
alert(this.info);
}

myNewObject.showInfo()//调用方法

构造函数
function my(name,sex.gex){//参数
this.info=;
this.showinfo=function(){

}
}
my.prototype.sayHello=function(){
}//扩展,添加新的方法
继承
dog.prototype=new pet();dog实例就可以使用pet的方法,属性
封装

DOM

  • nodetype节点类型

    • 1元素
    • 2 属性
    • 3 文本(包含空白)
  • childNodes当前节点直接子节点的集合

  • firstchild/lastchild

  • parentNode父节点

  • nextSibing/previousSibing后一个/前一个兄弟节点

  • nodeValue节点的值,一般是文本节点

  • nodeName

    • 1元素名
    • 2 属性名
    • 3 字符串

    getElementsByTagName()//返回该对象包含指定标签一个集合

    getElementsByClassName()//ie9不支持

  • getAttribute("")读取属性值/setAttribute()设置 属性值

    var mynode = document.getelementById("id1")
    mynode.getAttribute("title")//返回改元素的title属性的值,若没有则是null
    

    节点操作

  • createElement(“div”)//创建元素

  • createTextNode()//创建文本

  • 要复制的节点.cloneNode(true)复制节点,ture复制包括子节点,复制后要修改id

  • 父节点.appendchild()//子节点列表的末尾

  • 父节点.insertnodex(newpara,para1)//插到选定节点的前面

  • 父节点.replaceChiid()//替换节点

  • 父节点.removeChild();//删除子节点

    • 或para.parentNode.removeChild(para);

json

去序列化:字符串还原为JavaScript代码,json对象

eval()
var user='{"username":"pathname","location":"Spain"}';
var myObject=eval('('+user+')');//字符串必须包在括号里
使用浏览器对json的支持
myObejct=json.parse(user);
for(i in myObejct){
 out+= i+"="+maObject[i]+"\n";//i是键
}

json序列化:数据转为方便传输的形式;json字符串

var Dan = new Object();
Dan.height = 18.5;
Dan.age=41;
JSON.stringify(Dan)
"{"height":18.5,"age":41}"

模拟关联数组

var con={
	"stratday":"moday",
	"endDay":"Wendnesay"	
}
con[startday]=con.startday//monday;

使用JSON创建对象

var myobject={
	"stratday":"moday",
	"endDay":"Wendnesay",
	"setName":function(){
	},
	"booklist":["Dune","Eon"]
	"booklist2":[{"Dune":"","Eon":""},
				{"Dune":"","Eon":""}//包含其他对象
				]
}

你可能感兴趣的:(js基础)