W2-JavaScript基础知识二[JavaWeb]

1. js的String对象

  1.1 创建js对象 

var str="abc";

   1.2 方法

  (1)与html相关的方法

    -bold():加粗

    -fontcolor():设置字体颜色

    -fontsize():设置字体大小

    -link():设置超链接

    -sub():设置上标

    -sup():设置下标

  (2)与java相似的方法

    -concat():连接字符串

var str1="abcde";
var str2="aa";
document.write(str1.concat(str2));

    -charAt():返回指定位置的字符串

var str3="adfg";
document.write(str3.charAt(2));//字符位置不存在,返回空字符串

    -indexOf():返回字符串位置

var str4="adfeffdergg";
document.write(str4.indexOf("f"));//字符不存在,返回-1

    -split():切分字符串成数组

var str5="ad/fe/f/f/de/rgg/";
var str1=str5.split("/")
document.write(str1.length);

    -replace():替换字符串

var str6="addsff";
document.write(str6.replace("a","q"));

    -substr()和subString()

var str7="adfdsfsdfddsff";
document.write(str7.substr(5,3));//第五位开始,向后截取3位
document.write(str7.substring(5,7));//从第五位开始到第七位结束,不包含7  [5,7)

2. js的Array对象

  2.1 创建数组(三种)

  见基础知识一

var arr=[];//创建一个空数组

  2.2 属性

  -length:查看数组长度

  2.3 方法

  (1)concat()方法:数组的连接

var arr11=[1,2,3];
var arr12=[4,5,6];
document.write(arr11.concat(arr12));

  (2)join()方法:根据指定的字符分割数组

 var arr13=new Array(3);
  arr13[0]="a";
  arr13[1]="b";
  arr13[2]="c";
  document.write(arr13.join("-"));

  (3)push()方法:向数组的末尾添加元素,返回数组新长度

var arr14=new Array(3);
arr14[0]="tom";
arr14[1]="lucy";
arr14[2]="jack";
document.write(arr14.push("tt"));
document.write(arr14);

   -如果添加的是一个数组,会将其当成一个整体进行添加

var arr15=["aaa","bbb","ccc"];
var arr16=["www","qqq","ttt"];
document.write(arr15.push(arr16));//aaa,bbb,ccc,www,qqq,ttt 
document.write(arr15);//4

  (4)pop()方法:删除并返回最后一个元素

var arr17=["zhangsan","lisi","wangwu","zhaoliu"];
document.write(arr17.pop());

  (5)reverse()方法:颠倒数组元素的顺序

var arr18=["aaa","bbb","ccc"];
document.write(arr18.reverse());

3. js的Date对象

  3.1 java获取当前时间

Date date=new Date();
//格式化
//toLocaleString()

  3.2 js中获取当前时间

var date=new Date();
document.write(date);

 //转换成习惯的格式
document.write("</br>");
document.write(date.toLocaleString());

  3.3 获取当前年的方法getFullYear()

document.write(date.getFullYear());

  3.4 获取当前的月getMonth()

document.write(date.getMonth()+1);

    -返回的是0-11月,需要加1才能得到准确的值

  3.5 获取当前的星期 getDay()

document.write(date.getDay());

    -返回的是0-6,周天返回的是0,其他返回正常

  3.6 得到当前的天 getDate()

document.write(date.getDate());//返回当月的第几天

  3.7 得到当前的时分秒

//得到当前的小时
document.write(date.getHours());
//得到当前的分钟
document.write(date.getMinutes());
//得到当前的秒
document.write(date.getSeconds());

  3.8 获取毫秒数getTime()

document.write(date.getTime());

  -返回的是1970年1月1日以来的毫秒数

  -应用场景:处理缓存的效果(不有缓存)

4. js的Math对象

  4.1 都是静态方法,调用方法Math.方法()

  4.2 方法

  (1)取舍

document.write(Math.ceil(mm));//向上舍入,小数点后删掉加1
document.write(Math.floor(mm));//向下舍入,直接去除
document.write(Math.round(mm));//四舍五入

  (2)随机数random():伪随机数

document.write(Math.random());/
document.write(Math.floor(Math.random()*10));//得到0-9的随机数

5. js的全局函数

  5.1 不属于任何一个对象,直接写名字使用

  5.2 方法

  (1)eval():执行js代码

var str="alert('1234');";
eval(str);

  (2)encodeURI():字符进行编码

    decodeURI() :对字符进行解码

var str1="测试中文aaa 123";
var encode1=encodeURI(str1);
document.write(encode1);//%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87aaa%20123
var decode1=decodeURI(encode1);
document.write(decode1);//测试中文aaa 123 

    encodeURIComponent()和decodeURIComponent()

  (3)isNaN():判断当前字符串是否是数字,返回true和false

var str2="123";
document.write(isNaN(str2));//false

    -是数字返回false,不是数字返回true

  (4)parseInt():类型转换

var str3="123";
document.write(parseInt(str3)+1);//124

6. js的函数重载

  6.1 重载的定义:方法名相同,参数列表不同

  6.2 js中是否存在重载?

    (1)js里面不存在重载

    (2)但是可以通过其他方法模拟重载的效果(通过arguments数组来实现)

    将传递的参数保存到arguments里面

 function add1(){
    //传递两个参数
    if(arguments.length==2){
     return arguments[0]+arguments[1];
    }else if(arguments.length==3){
    return arguments[0]+arguments[1]+arguments[2];
    }else if(arguments.length==4){
    return arguments[0]+arguments[1]+arguments[2]+arguments[3];
    }else{
    return 0;
    }
   }
   //调用
    alert(add1(2,1));
    alert(add1(2,1,2)); 
    alert(add1(2,1,2,2));
    alert(add1(2,1,2,2,2));

7. js的bom对象

  7.1 bom-broswer object model 浏览器对象模型

  7.2 对象

  (1)navigator:获取客户机的信息(浏览器的信息)

document.write(navigator.appName);

  (2)screen:获取屏幕信息

document.write(screen.width);
document.write(screen.height);

  (3)location: 请求的URL地址

    -href属性

    --获取URL地址

document.write(location.href);

    --设置URL地址

<input type="button" value="jump" onclick="href1();"/>//提供鼠标点击事件
  
    function href1(){
         location.href="js的重载.html";//设置url地址
    }

  (4)history:请求的URL的历史记录

   -到访问的上一个页面

history.back();
history.go(-1);

  -到访问的下一个页面

history.forward();
history.go(1);

   (5)window

  -窗口对象

  -顶层对象(所有的bom对象都在window里面操作

  -方法

//页面弹出一个框,显示内容
window.alert();
//确认框
window.confirm("显示的内容");
//输入的对话框
window.prompt("显示的内容","默认的内容“);
//表示打开一个新的窗口
window.open("打开的新窗口地址url,"","窗口特征,长度宽度",");
//关闭窗口,浏览器兼容性比较差
window.cloe();
//定时器,每毫秒数执行js代码
setInterval("js代码",毫秒数");
//表示在毫秒数之后执行,只执行一次
setTimeout("js代码",毫秒数");
//清除setInterval定时器
clearInterval("setInterval的返回id值");
//清除setTimeout定时器
clearTimeout("setTimeout的返回id值");

8. js的dom对象

  8.1 dom:document object model:文档对象模型

  8.2 文档对象模型

  (1)文档:超文本文档(超文本标记文档) html、xml

  (2)对象:提供了属性和方法

  (3)模型:使用属性和方法操作超文本标记型文档

  (4) 使用js里的dom中提供的对象,利用其属性和方法,对标记型文档进行操作

    -对标记性文档里的所有内容封装成对象(j将HTML中的标签、属性、文本内容封装成对象

    -解析标记型文档(树形结构,只有一个根节点)

      --document对象:整个HTML文档

      --element对象:标签对象

      --属性对象

      --文本对象

        ---Node节点对象:是以上对象的父对象,若在对象里面找不到想要的方法,就要到node对象中找

  (5)DOM模型的发展历史

    DOM level1:将html文档封装成对象

    DOM level2:将level1的基础上添加新功能,例如对于事件和css样式的支持

    DOM level3:支持xml1.0的新特性

  (6)DHTML:很多技术的简称

    -html:封装数据

    -css:使用属性和属性值设置样式

    -dom:操作html文档(标记型文档)

    -javaScript:专门指的是js的语法语句(ECMAScript)

9. document对象-表示整个文档

  9.1常用方法

  (1)write()方法-向页面输出变量、html代码

  (2)getElementById()方法

<input type="text" id="nameid"  value="aaaa"/>
var input1=document.getElementById("nameid");//得到input标签
alert(input1.value);//得到input1里的value值

  (3)getElementsByName()方法-带有指定名称的对象集合-通过标签name的属性值得到标签,返回值是一个集合

<input type="text" name="name1 value="aaaa"/></br>
<input type="text" name="name1 value="bbbb"/></br>
<input type="text" name="name1 value="cccc"/></br>
<input type="text" name="name1 value="dddd"/></br>
var input1=document.getElementsByName("name1");//4
//遍历数组
for(var i=0;i<input1.length;i++){
  var input11=input1[i];//每次循环得到input1对象,赋值到input11里面
  alert(input11.value);//得到每个input11标签里面的value值
}

   (4)getElementsByTagName()方法-通过标签名称获得集合

var inputs1=document.getElementsByTagName("input");
//alert(inputs1.length);
//遍历数组,得到每个input标签
for(var m=0;m<inputs1.length;m++){
//得到每个input标签
    var input1=inputs1[m];
    //得到value
    alert(input1.value);
}

  (5)注意:只有一个标签时,这个标签通过getElementsByName()获取,不需要遍历,直接通过数组下标获取到值

10.案例:window弹窗案例

  10.1 实现过程

  (1)创建页面:两个输入项和一个按钮,按钮上有一个事件(弹出一个新窗口 open)

  (2)创建弹出页面:表格,表格中每一行有编号,姓名,按钮(事件:将当前编号和姓名赋值到第一个页面的相应位置)

  10.2 实现-opener属性

function s1(num1,name1){
     //跨页面操作 opener:得到创建这个窗口的窗口 得到window页面
     var pwin=window.opener;
     pwin.document.getElementsById("numid").value=num1;
     pwin.document.getElementsById("nameid").value=name1;
     //关闭窗口
     window.close();
}

  10.3 注意点

  (1)访问本地文件时,由于js安全性,浏览器安全级别高,不允许访问

  (2)实际开发中不访问本地文件,所以不存在这样的问题

原文地址:https://www.cnblogs.com/ERFishing/p/10931538.html