Javascript基础知识(一)

由于之前学过Java,因此Javascript中和Java相同的特性及用法在此我会略过。

一、Javascript输出

这里写图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js输出</title>
</head>
<body>
    <p id="one"></p>
    <script type="text/javascript">
        /**
        window.alert() 警告框
        document.write() 写到 HTML 文档中
        innerHTML 写到 HTML 元素
        console.log() 写到浏览器的控制台
        **/

        alert('helloworld');//弹出警告框,显示内容为helloworld,点击确定后才会执行下面的代码
        //将内容直接写到整个HTML文档
        document.write('helloworld');
        //改变p元素内容
        document.getElementById('one').innerHTML = "this is p";
        //在控制台输出内容
        console.log(123)
    </script>
</body>
</html>
二、Javascript数据类型

这里写图片描述
注意,var可以代表上面任意数据类型。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js数据类型</title>
</head>
<body>
    <script type="text/javascript">
        /**
         * 字符串 (String)
         * 数字 (Number)
         * 布尔 (Boolean)
         * 数组 (Array)
         * 对象 (Object)
         * 空 (Null)
         * 未定义 (Undefined)
         */

        // var可以声明各种类型
        var x;               // x 为 undefined
        var y = 5;           // y 为数字
        var z = "John";      // z 为字符串

        // 字符串
        var carname="Volvo XC60";
        var carname='Volvo XC60';

        // 数字
        var x1=34.00;      //使用小数点来写
        var x2=34;         //不使用小数点来写

        // 布尔
        var x=true;
        var y=false;

        // 数组
        var cars=new Array();
        cars[0]="Saab";
        cars[1]="Volvo";

        var cars=new Array("Saab","Volvo","BMW");

        var cars=["Saab","Volvo","BMW"];

        // JavaScript 对象   键值对
        var person={
            firstname:"John", 
            lastname:"Doe", 
            id:5566
        };
        console.log(person.firstname)
        console.log(person["firstname"])
        // Undefined 和 Null
        // Undefined 这个值表示变量不含有值。
        // 可以通过将变量的值设置为 null 来清空变量
        var persons;
        var car="Volvo";
        car=null
    </script>
</body>
</html>
三、Javascript函数

这里写图片描述

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js函数</title>
    </head>
    <body>
        <script>
            /**
             • 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块
             • function a( 参数 ){} 声明会前置
             • var a = function( 参数 ){} 匿名函数
             • 函数中的 return
             */

            //无参函数a的声明和调用
            function a()
            {
                console.log(1111);
                console.log(2222);
                console.log(3333);
                console.log(4444);
                console.log(5555);
                console.log(6666);
            }
            a();
            //带参函数b的声明和调用
            function b(cs1,cs2)
            {
                console.log(cs1+cs2);
            }
            b("Hello,","world");
            //匿名函数的声明和调用
            var c=function (cs1,cs2,cs3)
            {
                console.log(cs1+""+cs2+""+cs3);
            };
            c(1,2,3);
            //函数的return
            function d()
            {
                return "This is return function";
            }
            var d1=d();
            console.log(d1);
        </script>
    </body>
</html>
四、Javascript比较和逻辑运算符

基本和Java中的一致,JS特有的比较符是===和!==,前者是严格相等(即值和数据类型均相等),后者是完全不相等。例如var c = 5 ; var b = ‘5’;若用==判断则结果为true,若用===判断结果为false,因为数据类型一个为number一个为String

五、Javascript中的switch

与Java不同的是,JS中的swith是可以和字符串匹配的,这点需要注意,例如下面代码中,从prompt输入的number均为字符串类型,因此在switch中是case “1”到case “3”。

<!DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
            var number=prompt("请输入您要查询的业务编号");
            switch (number)
            {
                case "1":
                {
                    document.write("账户余额为:。。。。。。")
                    break;
                }
                case "2":
                {
                    document.write("转账余额为:。。。。。。")
                    break;
                }
                case "3":
                {
                    document.write("信用额度为:。。。。。。")
                    break;
                }
                default:console.log("退出银行系统");
            }
        </script>
    </body>
</html>
六、Javascript中的循环

唯一与Java不同的是JS中有一个特殊的循环for/in,它可以循环遍历对象
这里写图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js中for循环与while循环</title>
</head>
<body>
    <script type="text/javascript">
        /**
         *
         *  for - 循环代码块一定的次数
            for/in - 循环遍历对象
            while - 当指定的条件为 true 时循环指定的代码块
         */

        for( var i = 0; i < 10 ; i++ ){
            console.log('i:'+ i);
        }
        //声明并给对象赋值
        var person = {
            name : 'json',
            age : 25,
            sg: 170
        }
        //循环输出对象person内的键值对的值
        for( key in person ){
            console.log(person[key])
        }

        var count = 1;
        while( count < 10 ){
            count++ ;
            console.log('执行while循环');
        }
    </script>
</body>
</html>
七、DOM

(1)、DOM树模型
这里写图片描述
这里写图片描述

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div id="intro">HelloWorld</div>

        <div id="main">
            <p>The Dom is useful.</p>
        </div>

        <div class="content">1</div>
        <div class="content">2</div>
        <div class="content">3</div>
        <div class="content">4</div>

        <script>
            //通过js获取html标签
            var intro=document.getElementById("intro");//通过id找html元素,id是唯一的

            //通过元素名找到元素
            var main=document.getElementById("main");//先找到p元素的父元素
            var p=main.getElementsByTagName("p")[0];//利用父元素和标签名找到p元素,但注意这里找到的p元素的数组,因为一个父元素下可能有很多p标签

            //通过class名找到元素
            var content = document.getElementsByClassName("content")[0];//由于一个可以有很懂相同class名的元素,因此返回的也是一个数组

        </script>
    </body>
</html>

(2)、DOM HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <a id="goURL" href="">百度</a>
        <img src="1.jpg" id="image">
        <!--data属性是自定义的-->
        <div id="main" data="你好">123</div>
        <script>
            var main = document.getElementById("main");
            main.innerHTML = "HelloWorld";

            //alert(main.getAttribute("data"));//获取元素属性的值
            main.setAttribute("data","你也好");//修改元素自定义data属性
            main.setAttribute("dd","dada");//为元素增加元素

            var image = document.getElementById("image");
            //修改img标签的图片
            image.src = "2.jpg";
            //修改a标签的href属性的两种方法
            var guURL = document.getElementById("goURL");
            goURL.setAttribute("href","http://www.baidu.com");
            goURL.href = "http://www.baidu.com";
        </script>
    </body>
</html>

(3)、DOM CSS

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div id="main">Hello,World</div>
        <script>
            var main = document.getElementById("main");
            //通过js修改元素的CSS样式
            main.style.color = "blue";//修改main元素内部字体颜色
            main.style.fontSize = "100px";//修改main元素内部字体大小
        </script>
    </body>
</html>

(4)、DOM 事件
和Android的监听器非常类似。
这里写图片描述

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <!--
            DOM事件:
            1、元素
            2、动作
            3、触发的结果
        -->
        <!--注意alert的参数若还是双引号会报错...
        一种事件添加方式:事件内嵌元素中
        -->
        <div onclick="alert('Hello World')">按钮</div>

        <div id="main">我是main</div>
        <div id="btn">我是btn</div>
        <script>
            var main = document.getElementById("main");
            /*第二种事件添加方式*/
            main.onclick = function()
            {
                alert("main被触发了~");
            };

            var btn = document.getElementById("btn");
            /*第三种事件添加方式,也是最推荐的方式*/
            btn.addEventListener("click",function ()
            {
                alert("btn被触发了~");
            });
        </script>
    </body>
</html>

(5)、DOM 节点
这里写图片描述

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div id="div1">
            <p id="p1">我是第一个p</p>
            <p id="p2">我是第二个p</p>
        </div>
        <script>
            var p = document.createElement("p");//创建标签<p></p>
            var word = document.createTextNode("我是新增的p标签");//创建的p标签的内容
            p.appendChild(word);//<p>我是新增的p标签</p>
            /*将新建的p标签放入div1中*/
            var div1 = document.getElementById("div1");
            div1.appendChild(p);
            /*删除div1中的p1节点*/
            var p1 = document.getElementById("p1");
            div1.removeChild(p1);
        </script>
    </body>
</html>
八、JS中的window对象

(1)、window概念
这里写图片描述

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <script>
            /**
             • window.open() - 打开新窗口
             • window.close() - 关闭当前窗口
             • window.moveTo() - 移动当前窗口
             • window.resizeTo() - 调整当前窗口的尺寸
             */
            //根据window的概念,变量a和函数b都会成为window对象的成员
            var a = 1;
            function b()
            {

            }
            //输出window对象的属性a和方法b
            alert(window.a);
            window.b();

            var w;
            //创建一个大小为300x300的新窗口,第一个参数是默认访问的网址,第二个参数是名字
            function openWindow()
            {
                w = window.open('', '', 'width=300,height=300');
            }
            //调整窗口大小为500x500
            function myFunction()
            {
                w.resizeTo(500,500);//调整窗口大小
                w.focus();//聚焦
            }
            //移动窗口到(x,y)为(700,500)的位置
            function moveFunction()
            {
                w.moveTo(700,500);
                w.focus();
            }
            //关闭窗口
            function closeFunction()
            {
                w.close(700,500);
                w.focus();
            }
        </script>
        <button onclick="openWindow()">创建窗口</button>
        <button onclick="myFunction()">调整窗口</button>
        <button onclick="moveFunction()">移动窗口</button>
        <button onclick="closeFunction()">关闭窗口</button>
    </body>
</html>

(2)、window-screen
这里写图片描述

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <script>
            /**
             * screen.availWidth - 获取可用的浏览器宽度
             * screen.availHeight - 获取可用的浏览器高度
             */
            //显示整个浏览器的长和宽,宽(横向)和屏幕相等,但是长度(纵向)由于浏览器不包括最底部的那一栏,因此和屏幕的长度不相等。
            alert(screen.availWidth+" × "+screen.availHeight);
        </script>
    </body>
</html>

(3)、window-location
这里写图片描述
假设我们当前页面为http://www.imooc.com/a/b
进入浏览器控制台,在控制台中输入location.hostname,回车,会发现控制台输出了当前网址的域名:http://www.imooc.com;输入location.pathname,控制台会输出/a/b;输入location.protocol会输出http;输入location.href会输出http://www.imooc.com/a/b

(4)、window-history
history对象用来记录当前标签访问过的页面。
这里写图片描述
例如我首先访问百度,再访问谷歌,最后访问搜狐。那么这时在浏览器控制台执行window.history,会出现history的属性,其中有一条Length属性为3,这就是当前页面访问过的页面数;这时我再执行history.back()就会返回上一页即谷歌,接着执行history.forward()就会前进到下一页即搜狐,那么如果我想从搜狐直接返回百度的话就执行history.go(-2)即可,它表示回退两个页面,同理,从百度直接访问搜狐就执行history.go(2),它表示前进两个页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值