zoukankan      html  css  js  c++  java
  • javascript笔记

    ===javascript===
    1.javascript
    是网景(Netscape)开发的一种与页面进行交互的编程语言.
    javascript程序在浏览器端运行.文件以.js为结尾.
    Netscape Navigator javascript
             IE        JScript
    ---引入js:
      内部:使用<script>标签
      外部:
      <script type="text/javascript" src="js文件路径"></script>

    2.javascript作用
    a.前段验证
    b.ajax核心技术之中的一个.
    c.与页面进行交互,生成动态效果
    d.获得浏览器的相关信息

    3.javascript的组成部分:
    1)ECMAScript:语法基础(已经标准化)
    2)DOM:文档对象模型(部分标准化)
    3)BOM:浏览器对象模型(没有标准,可是大部分浏览器都支持window,location,history,screen等).
    4.语法基础
    1)数据基本类型
    number:数字类型
    string:字符串类型
    boolean:布尔类型
    null:空类型
    undefined:没有定义类型
    注意:
    a.undefined:
    定义一个变量假设没有赋值,那么这个变量就是undefined.
    假设未定义变量,直接使用的类型是undefined
    b.null
    null类型的值为null.
    javasrcipt函数没有返回值,函数的返回值为null.

    c.布尔类型
    下面几种情况为true
    1.字符串,仅仅要不是空字符串
    2.数字非0
    3.对象

    null和undefined为false

    d.NaN:Not a number 不是一个数字
    但NaN这个值属于number类型
     
    2)对象类型
    function Object String Math Array Date

    java是强数据类型语言:定义变量时,必须定义变量的类型
    js弱数据类型的语言:定义变量时,不须确定变量的类型.但数据本身有类型.

    ---使用变量时,js的特性:
    a.javascript同意定义多个重名变量,变量的值以最后的变量赋值为准.
    b.javascript同意命令结束后不写";"号(推荐写上)
    c.javascript同意定义变量不使用keyword"var",所定义的变量叫做全局变量.
    局部变量:指的是函数内部的变量,且使用"var"定义,作用的范围:从定义变量到函数结束.
      
      3)运算符
    a.算术运算符 + - * / % ++ -- += *= /= %= 等
    假设在进行非"+"操作时,javascript会把字符串(仅仅包括数字)变成数字.
      parseInt()
    parseFloat()

    b.比較运算符 < > >= <= == ===
    ==:对照的是数据的值
    ===:对照数据值的同一时候,比較数据类型

    c.逻辑运算符&& || !

    d.三目运算符 (a==b)?true:false;

    e.赋值运算符  =


    4)流程控制语句
    1.条件
    if ..else

    2.循环
    do ...  while
    while
    for(var i=0;i<10;i++)
    java: 
    for( Object obj:list){}

    List<Person> list = new ArrayList<Person>();
    list.add().....

    for(int i=0;i<list.size();i++){
    Person p = list.get(i);
    p.getName();
    }

    for(Person p:list){
    p.getName();
    }

    js:foreach()(之后讲)


    ---对象数据类型----
    1.Function函数 ---->类似java中的方法
    java:定义方法
    修饰符 返回值类型 方法名(參数列表) 异常表{}
    public int add(int i,int j){ return i+j;}

    js:函数
    a.function add(i,j){ return i+j;}

    b.不推荐使用,由于函数体书写不便,可读性不强
    var fun = new Function("i","j","return i+j");

    c. 匿名函数
    var fun = function(i,j){ return i+j;}

    注意:
    1)js中函数没有重载的概念,函数调用优先变量的定义,之后以最后一次定义为准.(和參数列表无关)
    2)函数内部有一个隐藏对象(内置对象)
    arguments:函数被调用时所传的參数.
    3)函数的參数能够是还有一个函数变量
    function fun1(){alert("fun1");}
    function fun2(){alert("fun2");}
    function fun3(f){alert("fun3");f();}
    fun3(fun1);

    2.Object 对象
    java: Student类 Student s = new Student();
    js:没有类的概念
    1)通过构造函数创建对象
    var student = new Object();
    student.name = "jack";
    student.age = 25;
    student.getName = function(){return this.name;}
    2)JSON方式创建对象(JSON以后讲)
    var student = {
    name:"rose",
    age:18,
    getName:function(){
    return this.name;
    }
    };
    3.Array数组
    1).通过构造器来创建
    var arr = new Array();
    java中数组特点:
    int[] arr= new int[10];
    a.长度不可变
    b.一种类型的数组仅仅能存储同种类型的数据

    js中数组的特点:
    a.长度可变
    b.能够存储随意类型的数据

    2).JSON方式创建数组
    var arr = [1,2,"abc",new Object()];


    3).数组经常使用的API:
    length:属性,返回数组长度.
    toString():返回数组的字符串表示
    concat():用于连接两个数组,返回一个新的数组
    join(";"):用于将数组中的各个元素以";"号连接成字符串
    reverse():将数组反转,返回一个原数组,没有形成新的数组
    slice(m,n):用于截取数组的一部分([m,n)),并以数组的形式返回


    数组作为堆栈使用
    push():压入
    pop():弹出


    数组作为队列使用
    shift():删除并返回数组的第一个元素
    unshift() 方法可向数组的开头加入一个或很多其它元素,并返回新的长度。


    数组排序:
    sort():以字符串方式比較

    数字排序:
    arr.sort(function(a,b){
    //return a-b;//升序
    return b-a;//降序
    });


    字符串长度排序:
    arr12.sort(function(a,b){
    return a.length - b.length;//升序
    return b.length - a.length;//降序
    });
    4.String
    java : String s = new String("jack");
    js:   var s = new String("jack");
    var s = "jack";


    经常使用API:
    length属性:返回字符串长度(java中str.length())
    charAt(index):返回指定位置的字符
    substring(from,to):返回子字符串(区间左闭右开)
    indexOf(str):指定字符串在原字符串中第一次出现的位置,找不到返回-1.
    match(regexp):返回匹配指定正則表達式的字符串,返回的结果是一个数组.
    var s1 = "aa12bb12223ccdd14";
    var reg = /[0-9]+/g;//g :global搜索全局
    var arr = s1.match(reg);


    var tel = "+86 18670338142";
    var reg1 = /^(+d{2}s)?d{11}$/;
    reg1.test(tel):推断字符串tel是否是依照正則表達式的规范

    replace(reg,""):替换符合正則表達式的字符串
    toLowerCase()/toUpperCase():返回小写/大写形式


    search(reg):返回依照正則表達式检索到的字符串位置(仅仅检查一次)


    split(","):以","切割字符串,返回数组

    5.Date日期
    java: java.util.Date;
    java.sql.Date;
    Date date = new java.util.Date();
    ps.setDate(1,new java.sql.Date(date.getTime()));
    js:
    1)var d = new Date();
    toLocaleString():依照当前国家显示日期的习惯来显示日期


    2010 10 1 13:15
    2.显示特点某天日期
    var l = Date.UTC(2010,9,1,5,15);
    var d = new Date(l);


    3.经常使用API
    getYear(): 距离1900年相差多少年
    getFullYear(): 实际年份
    getMonth():月份(从0開始)
    getTime():距离1970年的毫秒数
    getDay():星期几
    getDate():当月的几号
    getHours(): 时
    getMinutes(): 分
    getSeconds(): 秒


    6.Math
    处理算术运算
    Math.round():四舍五入
    Math.ceil():对于小数,向上升值
    Math.floor():截取小数数据(取整数有效位,向下取整)
    Math.random():0到1之间的随机数
    例: 0到17之间的随机数
    Math.floor(Math.random()*18)
    1到17
    Math.ceil(Math.random()*17)或
    Math.floor(Math.random()*17+1)
    ----foreach循环---
    java: List<User> list = new ArrayList<User>();
    for(User u:list){}
    js:
    1.遍历数组
    for(idx in arr){//迭代数组的下标值
    alert(idx+":"+arr[idx]);
    }


    2.遍历对象的属性
    for(prop in student){//prop迭代对象的属性名
    alert(prop+":"+student[prop]);
    }
    7.事件监听属性
    1)一般性事件
    差点儿适用所有的可显示标签
    onclick:单击
    ondblclick:双击
    onmouseover:鼠标移上元素
    onmouseout:鼠标移出元素
    onmousemove:鼠标移动
    onmousedown:鼠标左键按下
    onmouseup:鼠标左键松开
    2)页面相关事件 body标签中
    onload:页面载入之后触发
    onscroll:页面滚动时触发
    onresize():调整大小


    3)表单相关事件
    onblur:当前元素失去焦点时触发
    onchange:用户改变域的内容
    onfocus:元素获得焦点时触发
    onsubmit:提交button别点击时触发(<form>)
    return true|false:为true就提交表单.反之则不提交
  • 相关阅读:
    计算机组成原理学习总纲图
    USE RED
    既有的问题如何解决
    字符串极值题解
    扩展 KMP
    KMP
    FHQ-Treap
    STL
    iOS内存管理理论知识过一遍
    iOS中Block理论知识过一遍
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4513109.html
Copyright © 2011-2022 走看看