zoukankan      html  css  js  c++  java
  • Day3JavaScript(一)JavaScript初识以及bom操作

    JavaScript简介

    什么是JavaScript

    弱类型,动态类型,基于原型的直译性的编程语言。1995年netscape(网景)在导航者浏览器中设计完成。

    JavaScript的特点

    1.与HTML之间进行交互

    2.不需要编译(浏览器中有解释器)

    3.跨平台

    4.安全性:不能直接访问本地文件

    5.大小写敏感

    JavaScript的作用

    1.JavaScript可以动态的增删改查HTML的元素

    2.JavaScript可以动态的修改样式(css)

    3.JavaScript可以对事件进行响应

    4.JavaScript可以实现对表单的动态校验

    5.JavaScript可以对cookie和session进行处理

    6.JavaScript可以实现后台操作(node.js)

    JavaScript的组成

    1.ECMAscript

    2.bom

    3.dom

    JavaScript的引入方式

     1.内联

    <head>
       <meta charset="utf-8" />
       <title></title>
       <script>
                
       </script>
    </head>

    2.引入外部文件

    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript" src="js/myjs.js" ></script>
    </head>

    注意:脚本存在执行的先后顺序

    数据类型和变量

    变量

    变量名称规范:变量名是大小写英文、数字、$_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如ifwhile等。见名知义,申明一个变量用var语句。

    数据类型

    number

    JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:

    123; // 整数123
    0.456; // 浮点数0.456
    1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
    -99; // 负数
    NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
    Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity

    字符串string

    字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。

    布尔值boolean

    布尔值和布尔代数的表示完全一致,一个布尔值只有truefalse两种值,要么是true,要么是false,可以直接用truefalse表示布尔值,也可以通过布尔运算计算出来:

    true; // 这是一个true值
    false; // 这是一个false值
    2 > 1; // 这是一个true值
    2 >= 3; // 这是一个false值

    underfined

    <script>
        var d;
        alert(typeof d);
    </script>

     

    null

    <script>
        var d;
        d = null;
        alert(typeof d);
    </script>

    array(数组)

    <script>
        var d;
        d = null;
        d = ["aa","bb","cc"];
        alert(typeof d);
    </script>

    object

    <script>
        var d;
        d = null;
        d = ["aa","bb","cc"];
        d = {"name":"zs"};
        alert(typeof d);
    </script>

     JavaScript类型转换

    number+string

    <script>
        var a = 1;
        var b = "2";
        var d = a+b;
        alert(d);
    </script>

    boolean+number

    <script>
        var a = 1;
        var b = true;
        var d = a+b;
        alert(d);
    </script>

    boolean+string

    <script>
        var a = "1";
        var b = true;
        var d = a+b;
        alert(d);
    </script>

    string+undefined

    <script>
        var a = "1";
        var b = true;
        var c;
        var d = a+c;
        alert(d);
    </script>

    number+undefined

    <script>
        var a = 1;
        var b = true;
        var c;
        var d = a+c;
        alert(d);
    </script>

    运算符

    算数运算符

    赋值运算符

    比较运算符

    var a = 5;
    var b = "5";
    alert(a == b);  //
    alert(a === b); //值和类型

    逻辑运算符

    三目运算符

    流程控制

    分支语句

    if...else...

    与java一样

    switch

    与java一样

    循环语句

    while循环

    与java一样

    do...while循环

    与java一样

    for循环

    与java一样

    for ... in

    for循环的一个变体是for ... in循环,它可以把一个对象的所有属性依次循环出来:

    <script>
        var arr = ["aa","bb","cc","dd",11,22,33];
        for(var i in arr){
            console.log(arr[i]);//i是下标
        }
    </script>

    break和continue

    小案例

    <script>
        var w = 1000;
        for(var i=0;i<15;i++){
            if(i<8){
            var width = w-i*100;
            document.write("<hr width="+width+"px>");
            }else if(i>8){            
            var width = 300+(i-7)*100;
            document.write("<hr width="+width+"px>");
            }            
        }
                
    </script>

    结果:

    函数

    无参函数的声明和调用

    function calc(){
        console.log("aa");  
    }
    calc();

    有参函数的声明和调用

    function sum(a,b) {
        console.log(a+b);
    }

    返回值

    function calc4(a,b){
        return a + b;
    }
    var a = calc4(1,2);

    匿名函数(闭包)

    (function (x) {
        return x * x;
    })(3);

    内置函数

    isNaN():判断值是否为非数字

    var a= "aa";
    console.log(isNaN(a));//true
    var b = "1";
    console.log(isNaN(b));//false

    parseInt():将字符串转换为整数

    var a = "1";
    var b = "2";
    console.log(parseInt(a)+parseInt(b));//3

    parseFlocat():将字符串转换为小数

    var a = "1.4";
    var b = "2.5";
    console.log(parseFloat(a)+parseFloat(b));//3.9

    eval():对字符串进行计算,类型转换

    var c = "3+2*4";
    console.log(eval(c));//11

    对象

    js面向对象语言。属性和方法

    内置对象

    字符串对象

    对象创建:
     var s = "aaa";
    s = new String("aaa");
    属性:
    length:长度
    方法:
    console.log(s.charAt(1));    //根据索引获取字符
    console.log(s.indexOf("d")); //根据字符获取索引位置,不出现为-1
    console.log(s.substr(1,2));  //bc
    console.log(s.substring(1,2));  //b

     数组对象

    数组定义:
    var arr = ["aa","bb","cc"];
        //console.log(arr);
        arr = new Array();
        arr[0] = "aa";
        arr[1] = "bb";
        
        arr = new Array("bb","cc");
        console.log(arr);
        
        arr = new Array();
        arr["北京市"]=["昌平区","西城区"];
        arr["上海市"]=["浦东区","徐汇区"];
        for(var i in arr){
        console.log(i);
    }
    属性:
    length
    方法:
    concat():连接
    reverse():倒叙
    sort():排序
    push():追加
    pop():删除

    日期对象

    对象创建:
    Date()
    属性
    方法
    var myDate = new Date();
    var year = myDate.getFullYear();   //year
    var month = myDate.getMonth()+1;   //month
    var day = myDate.getDay();         //0-6  周中的天
    var day2 = myDate.getDate();       //月中的天
    var hour = myDate.getHours();
    var min = myDate.getMinutes();
    var sec = myDate.getSeconds();

    自定义对象

    function test(){
        var stu = new Object();
        stu.name = "zs";
        stu.age = 12;
        
        console.log(stu.name);
    }
    
    //学生对象   name   age
    function Student(name,age){
        this.name = name;
        this.age = age;
        this.show = function(){
            console.log("name="+this.name+",age="+this.age);
        }
    }
                
    var stu = new Student("zs",12);
    console.log(stu.name);
    stu.show();
    
    //扩展属性或者方法
    Student.prototype.sex = "男";

    bom(浏览器对象模型)

     1)控制浏览器行为。

     2)所有全局变量和函数都属于window。window可省略。

     3)window

    属性:
    document:文档
    history:浏览的url
    location:包含url的信息
    innerWidth:宽度
    innerHeight:高度
    navagitor:浏览器信息
    
    方法:
    var myWindow = open("http://www.baidu.com","baidu",
                    "width=200px,height=200px,left=200px,top=100px");
    //关闭
    myWindow.close();
    var conf = confirm("确认删除?");
    var str = prompt("请输入密码?","123456");
    
    var t = setTimeout(function(){
        console.log("boom");
    },1000);
                
    clearTimeout(t);
                
    var inter = setInterval(function(){
        console.log(new Date());
    },1000);
    clearInterval(inter);

    4)history对象

    浏览器历史
    属性:
    length
    方法:
    <input type="button" value="上一个" onclick="history.back();"/>
    <input type="button" value="下一个" onclick="history.forward();"/>
    <input type="button" value="跳转" onclick="history.go(1)"/>

     

  • 相关阅读:
    BootStrap弹出框插件popover简单实例
    peity(jQuery 插件可以将元素内容转换为一个小的 <svg> 饼图,圆环图,条形图和折线图)
    java生成API文档
    搭建eova开发环境
    搭建jfinal+maven框架
    注解Annotation
    【转】hive时间函数
    [hive][转]hive修改 表/分区语句
    【java findbugs集锦】【转】May expose internal representation by incorporating reference to mutable object
    [java学习笔记]继承和组合
  • 原文地址:https://www.cnblogs.com/qingyunzong/p/8300959.html
Copyright © 2011-2022 走看看