JavaSript

JavaScript特点

  1. 安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互。
  2. 跨平台性。(只要是可以解释Js的浏览器都可以执行,和平台无关。)

JavaScript与Java不同
JS是Netscape公司的产品,Java是Sun公司的产品
JS是基于对象,Java是面向对象。
JS只需解释就可以执行,Java需要先编译成字节码文件,再执行。
JS是弱类型,Java是强类型。

JavaScript内容

JavaSript_第1张图片
EDB.png

1.JavaScript语法基础
2.使用JS操作网页(DOM)
2.使用JS操作浏览器(BOM)
如何编写javascript的代码

 方式1:可以使用   

方式2: 引入外部的javascript文件。

    格式:   
                                                               

    注意:
        1.

Number

创建Number对象的方式:   

    方式1:
        var 变量=  new Number(数字)   

    方式2: 
        var 变量 = 数字;   

常用的方法:   
    toString()  把数字转换成指定进制形式的字符串。
    toFixed()   指定保留小数位,而且还带四舍五入的功能。

    var  num = 10; // 十进制
    document.write("十进制:"+num.toString()+"
"); document.write("二进制:"+num.toString(2)+"
"); //2进制 document.write("八进制:"+num.toString(8)+"
"); document.write("十六进制:"+num.toString(16)+"
"); document.write("三进制:"+num.toString(3)+"
"); // 101 var num2 = 3.455; document.write("保留两位小数:"+num2.toFixed(2))

Math

 ceil         向上取整
 floor()   向下取整
 random()  随机数方法 //  产生的伪随机数介于 0 和 1 之间(含 0,不含 1),
 round     四舍五入

    document.write("向上取整:"+ Math.ceil(3.14)+"
"); document.write("向下取整:"+ Math.floor(3.14)+"
"); document.write("随机数:"+ Math.random()+"
"); document.write("四舍五入:"+ Math.round(3.75)+"
");

Array

方式1:
    var 变量名 = new Array();  创建一个长度为0的数组。

方式2:
    var 变量名= new Array(长度) 创建一个指定长度的数组对象。

方式3:
     var 变量名 = new Array("元素1","元素2"...);  给数组指定元素创建数组 的对象。

方式4:
    var 变量名 = ["元素1","元素2"...];


数组要注意的细节:
    在javascript中数组的长度是可以发生变化的。

    var arr = new Array(3); //创建了一个长度为0的数组对象。
    arr[100] = 10;
    document.write("arr长度:"+arr.length+"
"); //101

Array数组常用方法:

1.arr1.concat(arr2);
    arr1 = arr1.concat(arr2); //concat把arr1与arr2的数组元素组成一个新的数组返回。

2.arr.join(str);
    var elements = arr1.join(","); // join使用指定的分隔符把数组中的元素拼装成一个字符串返回。
    //如arr1 = [a,b,c,d];上式结果为字符串"a,b,c,d"

3.x = arr.pop();
    pop :移除数组中的最后一个元素并返回该元素。

4.length = arr.push();
    arr1.push("abc"); // 将新元素添加到一个数组中,并返回数组的新长度值。

5.arr1.reverse(); //翻转数组的元素

6.x = arr.shift();
    document.write("删除第一个元素并返回:"+arr1.shift()+"
"); //移除数组中第一个元素,并且返回。 7.arr2 = arr1.slice(begin,end) var subArr = arr1.slice(1,2); //指定数组 的开始索引值与结束索引值截取数组的元素,并且返回子数组。 8.arr.sort(compare); arr1 = [19,1,20,5]; arr1.sort(sortNumber); //排序,排序的时候一定要传入排序的方法。 function sortNumber(num1,num2){ return num1-num2; } 9.arr.splice(.....) arr1.splice(1,1,"a","b","c"); //第一个参数是开始删除元素的索引值, 第二参数是删除元素的个数,往后的数据就是插入的元素。

自定义对象

在javascript没有类的概念,只要有函数即可创建对象。

    方式1:

        使用无参的函数创建对象。

        例子:
            function Person(){}
            var p = new Person(); //创建了一个Person对象了
            p.id = 110;
            p.name = "abc";

    方式2://推荐

        使用带参的函数创建对象。

        function Person(id,name){
            this.id = id;
            this.name = name;   
            this.say = function(){
                ....  
            }
        }

        var p = new Person(110,"abc");    //创建对象


    方式3: 使用Object函数创建对象

        var p = new Object();
        p.id = 110;
        p.name = "abc";

    方式4:使用字面量的方式创建.

        var p = {
            id:110,
            name:"狗娃",
            say:function(){
               ....
        }   


    注意:javascript的类名可以直接访问属性,如类名.成员;也可以这样访问类名[成员名字(字符串)]或对象[成员名字(字符串)]

 //一个数组工具类例子

    javascript 文件:

        var tool = new ArrayTool();
        function ArrayTool(){
            //找最大值
            this.getMax = function(arr){
                ........
                return max;
            }
            //找元素的索引值
            this.searchEle = function(arr,target){
                .........
            }
        }

    HTML文件:

    
    

prototype

prototype注意的细节:
    1.    prototype是函数(function)的一个必备属性(书面一点的说法是"保留属性")(只要是function,就一定有一个prototype属性)
    2.    prototype的值是一个对象
    3.    可以任意修改函数的prototype属性的值。
    4.    一个对象会自动拥有prototype的所有成员属性和方法。

例子:为String类加新方法:

 //为String对象的prototype对象添加新的方法,也使得String拥有该方法
String.prototype.toCharArray = function(){  
        var arr = new Array();
        for(var index = 0; index

继承用途:

 function Super(){
            this.val = 1;
            this.arr = [1];
        }
        function Sub(){
            // ...
        }
        Sub.prototype = new Super();    // 核心 ,使得Sub拥有Super的所有方法```

        var sub1 = new Sub();
        var sub2 = new Sub();
        sub1.val = 2;
        sub1.arr.push(2);
        alert(sub1.val);    // 2
        alert(sub2.val);    // 1

        alert(sub1.arr);    // 1, 2
        alert(sub2.arr);    // 1, 2
BOM编程(Browser Object Model )

    - BOM编程基础

    全称 Browser Object Model,浏览器对象模型。
    JavaScript是由浏览器中内置的javascript脚本解释器程序来执行javascript脚本语言的。
    为了便于对浏览器的操作,javascript封装了对浏览器的各个对象使得开发者可以方便的操作浏览器。

    BOM对象:
     
      - window 对象

       Window 对象是 JavaScript 层级中的顶层对象。
       Window 对象代表一个浏览器窗口或一个框架。
       Window 对象会在  或  每次出现时被自动创建。

        - window中的方法

    document   对 Document 对象的只读引用
    location   用于窗口或框架的 Location 对象,代表了地址栏对象。
    history    对 History 对象的只读引用。
    document.tilte    设置网页的标题
    moveto()  将窗口左上角的屏幕位置移动到指定的 x 和 y 位置。
    moveby()    相对于目前的位置移动。
    resizeTo()   调整当前浏览器的窗口。
    open()     打开新窗口显示指定的URL(有的浏览器中是打一个新的选项卡)
    setTimeout(vCode, iMilliSeconds)       超时后执行代码。
    setInterval(vCode, iMilliSeconds)      定时执行代码,第一次也是先待,到时再执行。

     事件
 注册事件的方式:

            方式一: 直接在html元素上注册
                  
                  function ready(){
                      alert("body的元素被加载完毕了..");   
                  }
 

            方式二:可以js代码向找到对应的对象再注册。 推荐使用。
            var bodyNode = document.getElementById("body");
            bodyNode.onload = function(){
                alert("body的元素被加载完毕");   
            }
 
    - 事件说明

基本上所有的HTML元素中都可以指定事件属性。
   
所有的事件属性都是以on开头,后面的是事件的触发方式,如:
       onclick,表示单击
       onkeydown,表示键按下
              ...

    - 常用的事件类型:

    鼠标点击相关:
       onclick 在用户用鼠标左键单击对象时触发。
       ondblclick 当用户双击对象时触发。
       onmousedown 当用户用任何鼠标按钮单击对象时触发。
       onmouseup 当用户在鼠标位于对象之上时释放鼠标按钮时触发。

    鼠标移动相关:
       onmouseout  当用户将鼠标指针移出对象边界时触发。
       onmousemove 当用户将鼠标划过对象时触发。

    焦点相关的:
       onblur 在对象失去输入焦点时触发。
       onfocus 当对象获得焦点时触发。

    其他:
       onchange 当对象或选中区的内容改变时触发。
       onload 在浏览器完成对象的装载后立即触发。
       onsubmit 当表单将要被提交时触发。

location 对象

location 对象是由 JavaScript runtime engine 自动创建的,包含有关当前 URL 的信息。

location中的重要方法:
    href属性   设置或获取整个 URL 为字符串。
    reload()   重新装入当前页面

    function showURL(){
        alert(location.href);   
    }


    function download(){
        location.href="http://www.baidu.com";
    }


    function rafresh(){
        location.reload();   
    }

screen 对象


Screen 对象是由 JavaScript runtime engine 自动创建的,包含有关客户机显示屏幕的信息。

属性:
    availHeight   获取系统屏幕的工作区域高度,排除 Microsoft Windows 任务栏。
    availWidth 获取系统屏幕的工作区域宽度,排除 Windows 任务栏。
    height     获取屏幕的垂直分辨率。
    width      获取屏幕的水平分辨率。

示例:
    document.write("屏幕工作区: " + screen.availHeight + ", " + screen.availWidth + "
"); document.write("屏幕分辨率: " + screen.height + ", " + screen.width + "
"); document对象 DOM编程主要内容。 DOM编程(Document Object Model ) DOM简介 全称Document Object Model,即文档对象模型。 DOM描绘了一个层次化的树,允许开发人员添加、删除、修改页面的某一部分。 浏览器在解析HTML页面标记的时候,其实不是按照一行一行读取并解析的, 而是将HTML页面中的每一个标记按照顺序在内存中组建一颗DOM树, 组建好之后,按照树的结构将页面显示在浏览器的窗口中。 节点层次 HTML网页是可以看做是一个树状的结构,如下: html |-- head | |-- title | |-- meta | ... |-- body | |-- div | |-- form | | |-- input | | |-- textarea ... ... ... 这是一颗树,是由多个节点(Node)组成的,节点的类型有很多种。 节点最多有一个父节点,可以有多个子节点。 HTML DOM 定义了访问和操作HTML文档的标准方法。 document 代表当前页面的整个文档树。 all 获取页面所有元素对象 var allNodes = document.all; //获取html文件中的所有标签节点 。 for(var i = 0; i function showText(){ var inputNode = document.getElementById("userName"); //根据ID属性值找元素 inputNode.value = "设置好了文本"; } //InnerHTml是用于设置标签体的内容的。 value是用于设置标签的value属性值. function showImage(){ var images = document.getElementsByTagName("img"); //根据标签名获取所有的标签对象。 for(var i = 0 ; i ......

通过关系(父子关系、兄弟关系)找节点 从一个节点出发开始查找: parentNode 获取当前元素的父节点。 childNodes 获取当前元素的所有下一级子元素。 firstChild 获取当前节点的第一个子节点。 lastChild 获取当前节点的最后一个子节点。 nextSibling 获取当前节点的下一个节点。(兄节点) previousSibling 获取当前节点的上一个节点。(弟节点) 示例1: firstChild属性最普遍的用法是访问某个元素的文本: var text=x.firstChild.nodeValue; 示例2: parentNode 属性常被用来改变文档的结构。 假设您希望从文档中删除带有 id 为 "maindiv" 的节点: var x=document.getElementById("maindiv"); x.parentNode.removeChild(x); 节点操作 创建新节点 document.createElement("标签名") 创建新元素节点 elt.setAttribute("属性名", "属性值") 设置属性,如type = file elt.appendChild(e) 添加元素到elt中最后的位置 elt.insertBefore(new, child); 添加到elt中,child之前。 elt.removeChild(eChild) 删除指定的子节点 城市联动框例子: ...... 省份 城市 操作CSS例子 ....... change 正则表达式

方式1:
/正则表达式/模式
var regex = /正则表达式/标志

方式2:
new RegExp("正则表达式",模式);
var regex = new RegExp("正则表达式", "标志");

正则表达式对象常用的方法:
test() 使用正则对象去匹配字符串 如果匹配成功返回ture,否则返回false.
exec() 根据正则表达式去查找字符串符合规则的内容。

模式:
g (全文查找出现的所有 pattern)
i (忽略大小写)

位置:
^ 开头
$ 结尾
次数:
* 0或多个
+ 1或多个
? 0或1个
{n} 就是n个
{n,} 至少n个
{n,m} 最少n个,最多m个
通配符:
\b 空格
\d 任意数字
\D 任意非数字
\s 任意空白
\S 任意非空白
. 任意字符(除'\n'外)
组合:
[a-z]
[0-9]

组:
(正则) 匹配括号中正则表达式对应的结果,并暂存这个结果。
(?:正则) 匹配括号中正则表达式对应的结果,但不暂存这个结果。
\数字 使用第n个组匹配的结果

例子:
var str = "hello123";
var reg = /^[A-Z0-9]+$/i;
alert("匹配吗?"+reg.test(str));

var str  ="da jia hao hao xue xi a";
var reg = /\b[a-z]{3}\b/gi;
var line =""; 
while((line = reg.exec(str))!=null){
    document.write(line+"
") }

你可能感兴趣的:(JavaSript)