javaScript

概述

JavaScript一种直译式脚本语言,用来为网页添加各式各样的动态功能 (javaScript可以操作网页内容),不需要编译可直接通过浏览器解释运 行,通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

脚本语言

是不需要编译的语言,eg:sql、python、html、css、javaScript...

直接有某种引擎解释执行,逐行向下按行执行。

关系

html是结构,css是样式,javaScript是行为

历史

javaScript原名为LiveScript,由美国网景公司开发。是一种脚本语言,在网页中使用运行。

网景和SUN合作,改名为javaScript。

基本语法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <!-- 导入外部的js文件 -->
        <script src="js/index.js"></script>
        <script>
            // 调用对话框函数
            // alert("sb");
            
            // 自定义函数
            function test(){
                alert("sb");
            }
        </script>
    </head>
    <body>
        <input type="button" value="点击" onclick="test()"/>
    </body>
</html>

变量_数据类型

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            //变量声明
            // var a;
            //  a=10;//数值
            //  alert(a);
            //  a="asd";//字符串
            //  alert(a);
                
            //数值、布尔、字符串、undefined、object
            数值num(整数、浮点数)
            var a=10;
            var b=9.5;
            alert(typeof(a));
            alert(typeof(b));
            
            //布尔bollean
            var c=true;
            var d=false;
            alert(a==b);
            
            //字符串(单双引号都表示字符串)
            var e="asdfghjkl";
            var f='asdfghjkl';
            alert(typeof(e));
            
            //undefined
            var g;
            alert(g);
            
            //对象类型
            var date=new Date;
            alert(date.getFullYear());
            alert(date.getMonth()+1)
            alert(date.getDate());
            
        </script>
    </head>
    <body>
    </body>
</html>

运算符

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            //算术运算符 + - * / % ++ --
            //+:加法 字符串连接
            var a='10';
            var b=5;
            var c=10;
            var d='a';
            // alert(a+b);//字符串连接
            // alert(b+c);//加法
            // alert(a-b);//5
            // alert(c-b);//5 (字符串[数字]-数值=数值)
            // alert(c-d);//NaN (not a number)
            //...
            
            //赋值运算符 += -= /= %= *=
            
            //比较运算符 = == === != > >= < <=
            alert(a==c)//值比较
            alert(a===c)//值型比较
            
            //逻辑运算符 && || !
            
            //三目运算符 var result = (条件表达式)?结果1:结果2
            
        </script>
    </head>
    <body>
    </body>
</html>

函数

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            // function fun(){
            //  alert("sb");
            // }
            
            // // fun();
            
            // function test(a,b){
            //  alert(a+":"+b)
            // }
            
            // var now='NOW';
            // test(now,new Date());
            
            //全局函数
            /*
                把括号内的内容转换成整数之后的值。如果括号内是字符串,
                则字符串开头的数字部分被转换成整数,如果以字母开头,则返回"NaN"
            */
            var a=123.321;
            // alert(parseInt(a));
            var b=5;
            var c="10asd";
            // alert(b+parseInt(c));
            
            /*
                把括号内的字符串转换成浮点数之后的值,字符串开头的
                数字部分被转换成浮点数,如果以字母开头,则返回“NaN”
            */
            // alert(parseFloat(c));
            
            /*
                返回括号中值的数据类型。
            */
            // alert(typeof(a));
            // alert(typeof(c));
            
            /*
                可以计算某个字符串
                把传入的字符串当作js脚本运行
            */
            var d="(2*4*8*16*32)/(2**15)";
            alert(eval(d));
            
        </script>
    </head>
    <body>
    </body>
</html>

DOM

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            /*
                javaScript认为每个标签都是对象
                在js中称其为html dom对象
                
                在网页加载完后,在js中生成一个document对象(表示整个html文档)
                里面提供了一个方法getElementById()
            */
           
            function test(){
                var tobj=document.getElementById("test1");//通过标签id获得标签对象
                var yobj=document.getElementById("test2");
                //操作标签属性
                alert(tobj.value);
                yobj.value=tobj.value;
                tobj.value="";
                tobj.type="button";
            }
           
            function fun(){
                var tdivobj=document.getElementById("id1");
                var ydivobj=document.getElementById("id2");
                //innerText可以获得标签的文本内容
                //innerHTML可以获得标签的所有内容
                ydivobj.innerHTML=tdivobj.innerHTML;
            }
           
            function run(){
                var rdivobj=document.getElementById("id3");
                //改变标签style
                rdivobj.style.backgroundColor="green";
                rdivobj.style.width="200px";
                rdivobj.style.height="200px";
            }
           
            function lick(){
                //getElementsByTagName 返回的是一个标签对象的集合,只有一个标签
                // var divobjs=document.getElementsByTagName("div");
                // var divobjs=document.getElementsByClassName("box");
                var divobjs=document.getElementsByName("a");
                for (var i=0;i<divobjs.length;i++){
                    divobjs[i].innerHTML="a"+i;
                    divobjs[i].style.width="250px";
                }
            }
        </script>
    </head>
    <body>
        <input type="text" id="test1" value=""/>
        <input type="text" id="test2" value=""/>
        <input type="button" onclick="test()" value="飞"/>
        
        <br />
        
        <div id="id1">html dom对象</div>
        <div id="id2"></div>
        <input type="button" onclick="fun()" value="飞"/>
        
        <br />
        
        <div id="id3" style="background-color: aquamarine;">asd</div>
        <input type="button" onclick="run()" value="飞"/>
        
        <br />
        
        <div class="box" name="a" style="background-color: aquamarine;width: 100px;height: 100px;"></div>
        <br />
        <div class="box" name="a" style="background-color: aquamarine;width: 100px;height: 100px;"></div>
        <br />
        <div class="box" name="a" style="background-color: aquamarine;width: 100px;height: 100px;"></div>
        <input type="button" onclick="lick()" value="飞"/>
        
    </body>
</html>

内置对象

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            // Date 
            var date=new Date();
            console.log(date.getDate());
            console.log(date.getFullYear());
            console.log(date.getMonth());
            console.log(date.getDay());
            console.log(date.getHours());
            console.log(date.getMinutes());
            console.log(date.getSeconds());
            //...
            
            // Math 
            Math.abs(-6);// 绝对值计算;
            Math.pow(2,3);//  数的幂;x的y次幂
            Math.sqrt(16);//  计算平方根;
            Math.ceil(4.4);//  对一个数进行上舍入
            Math.floor(4.4);//  对一个数进行下舍入。 Math.round(x) 把一个数四舍五入为最接近的整数
            Math.random();//  返回 0 ~ 1 之间的随机数
            Math.max(1,5);//  返回 x 和 y 中的最大值
            Math.min(1,5);//  返回 x 和 y 中的最小值
            
            //字符串 
            var str="asdfghjkl";
            console.log(str.length);//返回该字符串的长度
            console.log(str.charAt(3));//返回该字符串位于第n位的单个字符
            console.log(str.indexOf("g"));//返回指定char首次出现的位置
            console.log(str.lastIndexOf("g"));//返回指定char从后往前第一次出现的位置
            
            console.log(str.substring(1,3));//返回从开始位置的索引到结束位置索引前一个位置的一段字符串
            console.log(str.substr(1,3));//返回以开始位置起长为length的一段字符串
            
            console.log(str.split(""));//返回一个数组
            
            //数组
            //法一
            var arr=new Array();
            arr[0]=1;
            arr[1]=2;
            arr[2]=true;
            arr[3]="asd";
            
            //法二
            var arr=new Array(1,2,true,"asd");
            
            //法三
            var arr=[1,2,true,"asd"];
            
            //数组循环输出
            for(var i=0;i<arr.length;i++){
                console.log(arr[i]);
            }
​
            var arr=[1,2,true,"asd"];
            var a=arr.join(":");//把数组转换为字符串,并指定一个连接符号
            arr.reverse();//数组逆序
            
            //数组字符排序
            var arr=["b","d","a","c"];
            arr.sort();
            console.log(arr);
            
            //数组数字排序
            var arr=[2,,9,15,3,5,1];
            arr.sort(numSort);//将自定义排序函数当作参数传入
            console.log(arr);
            
            //自定义排序函数
            function numSort(a,b){
                return a-b;
            }
            
        </script>
    </head>
    <body>
    </body>
</html>

控制语句

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            //与java基本一致
            //选择 if if/else switch
            
            //循环 for while do/while break continue
        </script>
    </head>
    <body>
    </body>
</html>

事件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            function test(){
                console.log("sb");
            }
        </script>
    </head>
    <body>
        <!-- onclick 单击左键触发 -->
        <input type="button" value="点击" onclick="test()"/>
        
        <!-- onblur 失去焦点时触发 -->
        <input onblur="test()"/>
        
        <!-- onfocus 获得焦点时触发 只触发一次 -->
        <input onfocus="test()"/>
        
        <!-- onmouseover 鼠标移入标签时触发 -->
        <!-- onmouseout 鼠标移出标签时触发 -->
        <input onmouseover="test()" onmouseover="test()"/>
        
        <!-- onload 当网页内容加载完后触发 -->
        
        <!-- onchange 失去焦点且内容改变时触发 -->
        <input onchange="test()"/>
    </body>
</html>

计时事件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script>
            function hello(){
                alert("sb");
            }
            
            var t;
            var u;
            
            function stratTime(){
                t=setInterval("hello()",3000);
                // u=setInterval("hello()",5000);
            }
            
            function stopTime(){
                clearTimeout(t);
                // clearTimeout(u);
            }
        </script>
    </head>
    <body>
        
        <input type="button" value="strat" onclick="stratTime()"/>
        <input type="button" value="stop" onclick="stopTime()"/>
        
    </body>
</html>

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部