zoukankan      html  css  js  c++  java
  • 二、js中基础知识

      该篇文章主要是强化一下自己javaScript的基础,让写代码变得更轻松些。基础好的请忽略。
        JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,
    为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
    1、在HTML中嵌入js代码的两种方式:

    1)插入在标签内部,写在事件句柄后面
    <input type="button" value="亲,点击我" onclick="window.alert('hello world!')window.alert('hello')>
    2)在独立的脚本块,其中可以编写js代码
    <script type="text/javascript">
            window.alert("hello world");
    </script>
    备注:<script>标签不一定出现在head标签中,可以出现在HTML页面中的任何位置
    View Code

    2、语法规范和书写规范

    2.1、javaScript语法规范说明:
    1)区分大小写;
    2)其中的变量是弱类型;
    3)每行结尾的分号可有可无,如果没有浏览器会自动加上
    4){} 括号用于代码块
    5) 注释方式和java和c语言相同
    
    2.2、变量的书写规范:
    1)首字符必须是字母(大小写均可)、下划线、美元符号
    2)其余字母可以使下划线、美元符号、任意字母或者数字字符
    3)变量名不能是关键字或者保留字
    a、变量声明:var 变量名;
        变量在声明的时候,没有使用var关键字,那么这个变量不管是定义在哪个位置上,都是全局变量
    b、变量赋值:变量名=值;
        js中的变量若没有显示的赋值,系统默认赋值underfined; underfined在js中是一个具体的值,表示未定义
    c、一行上可以定义多个变量
        var a,b,c=300;//变量a和变量b都是underfined,变量c是300
    备注:
        JavaScript也遵守就近原则,全局变量作用域是整个js程序,局部变量只作用于某个函数;
        变量没有定义,直接访问会报错。[结果不是underfined];
        变量定义之后没有赋值,系统默认赋值underfined;
    View Code

    3、函数语法格式:

        第一种方式:
        function 函数名(形式参数列表){
                函数体由JavaScript语句构成;
        }
        
        示例:
        function testFun(){
            //JS的函数执行结果之后的返回值类型是任意的,而且也可以不返回任何数据
            //return 100;
            //return false;
            //return "abc";
        }
            
    
        第二种方式:
        函数名 = function(形式参数列表){
                函数体;
        }
    
    备注:
    js中的函数没有重载机制,在统一个js代码中,函数名不能重名;
    函数必须手动调用的时候才会执行;
    View Code 

    4、js中的数据类型(5种):
    4.1、String类型(字符串类型):包括具体的值:'a' 'bsdfasdfasef'   

        js中没有字符类型,只有字符串类型(字符串这种数据类型的数据又可以称为”字符串对象“,虽然被称为字符串对象,但是字符串对象不属于Object类型)
    String的属性
    1)length属性:
    字符串的名字.legth: 获取字符串长度
    2)prototype属性:可以动态给String类型的数据扩展方法和属性
    示例1:给所有String(字符串动态的扩展一个方法叫做doSome)
        var ename="abdcdf";
        alert(ename.length);//获取字符串长度
        //以下是给所有String(字符串动态的扩展一个方法叫做doSome)
        String.prototype.doSome=function(){
            alert("dosome.....");
        };
        //调用doSome方法
        ename.doSome();
    3)String对象中的方法:
    toLocaleLowerCase()    把字符串转换为小写。
    toLocaleUpperCase()    把字符串转换为大写。
    substr()    从起始索引号提取字符串中指定数目的字符。
    substring()    提取字符串中两个指定的索引号之间的字符。注意不包括结束下标
    replace()    替换与正则表达式匹配的子串。
    示例1:
        ename=ename.toUpperCase();
        alert(ename);
    示例2:以下替换的时候,只替换第一个”-“,如果想要全部替换的话,的多次使用replace。想要全部替换也可以,但是需要使用正则表达式
        alert("1978-10-10".replace("-",",").replace("-",","));    
    View Code  

    4.2、Number类型:

    Number数据类型的取值:包括具体的值:13、1.0、NaN,Infinity
    1)1,3.0,123
    2)NaN
        NaN表示Not a Number,不是一个数字,但是NaN本身是一种Number数据类型,计算结果应该返回数字,但是最终结果不是数字的时候,
    结果就是NaN
    3)Infinity
        infinity汉语意思是无穷无限大;除数是0的时候,结果一定是Infinity
    View Code

    4.3)Boolean 包括具体的值:ture false,  

    //boolean类型  
    var boo=true;
    //表示的是字符串true
    var boo="true";
    
    var a=true;
    var b=true;
    alert(a==b);//true
            
    a="abc";
    b="daf";
    alert(a==b);//false
            
    a=true;
    b=1;
    alert(a==b);//true 1和true是等量关系
    alert(a === b);//false 1和ture虽然是等量关系,但是数据类型不同
            
    a=true;
    b=true;
    alert(a === b);//true
    View Code

    4.4)Object 包括具体的值:new Object(),new Date(), new Employee(),null.....

        js也是面向对象的编程语言;js中自定义的函数,函数名本身就是类名;
    js中定义类的2种方法:
    1)方法一:
        function User(id,name){
            //属性
            //id,name都是user类的属性
            this.id=id;
            this.name=name;
            //方法
            this.shopping=function(){
                alert(this.name+"is shopping");
            };            
        }
            //创建对象,类似java
            var user=new User();
            user.shopping();
            
            user=new User(110,"zhangsan");
            user.shopping();
    
    2)js中定义类的第二种方法:
        Employee=function(id,name){
            this.id=id;
            this.name=name;        
        }
        var e=new Employee(111,"lisi");
        alert(e.id+","+e.name);
        //给Employee动态扩展一个方法:
        Employee.prototype.work=function(){
                alert(this.name+"is working!");
        };
        //调用扩展的方法
        e.work();
    View Code

    4.5)Undefined 包括具体的值:underfined    
        Undefined数据类型只有一个值,这个值就是underfined;只声明没有给变量赋值或者手动赋值undefined,变量的值都是undefined;
    5、运算符
    5.1、typeof运算符:typeof运算符在程序运行阶段动态判断变量的数据类型

    1)如何使用:typeof 变量名
    2)typeof 运算符运算结果是以下六种结果之一:
    "undefined"  "number" "string" "objcet" "boolean" "function"
    备注:typeof运算结果是字符串类型
    示例:
    function sum(a,b){
        if((typeof a)!="number" || (typeof b)!="number"){
            alert("参数必须提供数字类型");
            return;
        }
            //执行到此处说明参数类型正常
            return a+b;    
        }
    
    typeof(1): number
    typeof(NaN): number
    typeof(Number.MIN_VALUE): number
    typeof(Infinity): number
    typeof("123"): string
    typeof(true): boolean
    typeof(window): object
    typeof(document): object
    typeof(null): object
    typeof(eval): function
    typeof(Date): function
    typeof(sss): undefined
    typeof(undefined): undefined
    详述:
    a、常规数字和特殊的数字的 typeof 返回值为number
    javaScript中特殊的数字类型包括:
    Infinity               表示无穷大特殊值
    NaN            特殊的非数字值
    Number.MAX_VALUE     可表示的最大数字
    Number.MIN_VALUE     可表示的最小数字(与零最接近)
    Number.NaN         特殊的非数字值
    Number.POSITIVE_INFINITY 表示正无穷大的特殊值
    Number.NEGATIVE_INFINITY  表 示负无穷大的特殊值
    b、
    对于字符串类型,typeof 返回的值是 string。比如typeof("123")返回的值是string。
    对于布尔类型,typeof 返回的值是 boolean 。比如typeof(true)返回的值是boolean。
    对于对象、数组、null 返回的值是 object 。比如typeof(window),typeof(document),typeof(null)返回的值都是object。
    对于函数类型,返回的值是 function。比如:typeof(eval),typeof(Date)返回的值都是function。
    如果运算数是没有定义的(比如说不存在的变量、函数或者undefined),将返回undefined。比如:typeof(sss)、typeof(undefined)都返回undefined。
    View Code

    5.2、JS中的= == ===的区别

    =  赋值:
    == 比较值是否相当
    === 比较值是否相同,同时要求数据类型也相同(更加严格)
    underfined,null,NaN各自的数据类型不同:
    alert(typeof underfined);//"underfined"
    alert(typeof null);//"object"
    alert(typeof NaN);//"number"
    
    underfined 和null属于:值相等
    alert(underfined==null);//true
    alert(null==NaN);//false
    alert(underfined==NaN);//false   
    View Code

    5.3void运算符

       void 运算符对任何值返回 undefined。该运算符通常用于避免输出不应该输出的值。
    例如,从 HTML 的 <a> 元素调用 JavaScript 函数时。要正确做到这一点,函数不能返回有效值,否则浏览器将清空页面,只显示函数的结果
    示例:
    <a href="javascript:void(0);" onclick="alert('execute js code!')">
        只执行一段js代码,不进行页面跳转,还想保留超链接的样式,需要使用void运算符
    </a>
    View Code

    6、常见函数、单引号和双引号的使用、流程控制
    6.1、常见函数
    1)isNaN():该函数的作用是用来判断数据是否是一个数字,不是数字是true,是数字是false

     window.onload = function() {
            var iNumber=Number(prompt("输入一个5到100之间的数字",""));
            if(isNaN(iNumber)){
                document.write("请确认您的输入正确");
            }else if (iNumber>100||iNumber<5) {
                document.write("您的输入的数字不在5和100之间");
            }else {
                document.write("您的输入的数字是"+iNumber);
            }
    }
    View Code

    2)parseInt():该函数将非数字转换成数字,不保留小数位

        var price="100";
        price=parseInt(price);//将字符串price转换成Number类型的数字
        alert(price+1);//101
        price="3.25";
        price=parseInt(price);
        alert(price+1);//4 自动进行了四舍五入;
    View Code

    3)parseFloat():该函数可以将非数组转化为数字,但是保留小数

        price="3.95";
        price=parseFloat(price);
        alert(price);//3.95
    View Code

    6.2、单引号和双引号的使用

    1)只使用字符的字符串,单引号和双引号没有区别
    2)在单引号包括的字符串中可以直接用双引号,在双引号包括的字符串中可以直接用单引号
    <input type="button" onclick="alert("1")">-------------------不正确
    <input type="button" onclick="alert('1')">-------------------正确
    3)如果在双引号包括的字符串中用双引号,需要用反斜杠转义,注意是""   ;同样在单引号包括的字符串中用单引号,也需要转义“”
    var str = "abc"def"ghi"
    用反斜杠来禁止解析双引号
    4)如果要用反斜杠,则输入‘\’
    View Code

    6.3、流程控制
    1)if else

    window.onload = function() {
        var iNumber=Number(prompt("输入一个5到100之间的数字",""));
        if(isNaN(iNumber)){
            document.write("请确认您的输入正确");
        }else if (iNumber>100||iNumber<5) {
            document.write("您的输入的数字不在5和100之间");
        }else {
            document.write("您的输入的数字是"+iNumber);
        }
    }
    View Code

    2)while

    var i=isum=0;
    while(i<=100){
        isum +=i;
        i++;
    }
    alert("isum-->"+isum);
    View Code

    7、数组的使用:初始化、赋值、遍历、数组中常用方法

    1)静态初始化
        var myArray=[1,2,3,44];
    2)动态初始化
        var myArray=new Array(5);//动态分配5个控件,没有手动赋值,系统默认赋值underfined
        遍历:
        for(var i=0;i<myArray.length;i++){
                alert("elt:"+myArray[i]);//undefined
        }
        赋值:[js数组中的数据类型不一定统一]
                myArray[0]=false;
                myArray[1]="abc";
                myArray[2]=1.0;
                myArray[3]=new Object();
    3)遍历
        for(var i=0;i<myArray.length;i++){
                alert("elment:"+myArray[i]);
        }    
    4)数组中常用方法    
    a、join():以特殊符号链接数组中的每一个元素,最后生成一个字符串
    var a=[1,'abc',false,3.0];
    var str=a.join("-");
    b、reverse():反转数组中的元素
    a.reverse();
    c、pop():其取值为:数组最后边的元素, 且执行后数组最右边的元素会被删除
    d、push():添加元素
    e、toString():取值为:数组的每个元素,且各个元素用,  隔开
    View Code

    8、JS对日期的处理

    //获取系统当前日期
    var nowTime=new Date();
    alert("系统当前日期-->"+nowTime);
    
    //将系统时间转换成具有本地语言环境的时间
    var strNowTime=nowTime.toLocaleString();
    alert("本地语言环境的时间-->"+strNowTime);
    
    //可以获取日期的年月日时分秒,自己添加格式:
    var year=nowTime.getYear();
    alert("year-->"+year);
    
    //避免千年虫问题
    year=nowTime.getFullYear();//这个方法更通用
    alert("FullYear-->"+year);
    
    //获取毫秒:getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。
    var time=nowTime.getTime();
    alert(time);
    View Code

    9、js中的事件
    9.1、onload事件
    页面加载的时候就自动显示出当前系统的时间,并且每隔一秒钟刷新一下页面

    <script type="text/javascript">
        //onload事件句柄需要编写到body标签中
        function displayTime(){
            //1.获取div元素
            var timeDiv=document.getElementById("timeDiv");
            //2.获取系统时间
            var nowTime=new Date();
            var strNowTime=nowTime.toLocaleString();
            //3.将系统时间设置到div元素中
            //innerHTML属性用来 设置或返回行的开始标签和结束标签之间的 HTML
            timeDiv.innerHTML=strNowTime;
        }
        //4.每隔1秒调用displayTime函数
        function start(){
            //设置每隔特定时间执行特定函数
            window.setInterval("displayTime()",1000);
        }
    </script>
    View Code

    9.2、onclick事件(涉及div和span、innerHTML和innerText区别)

    <html>
    <head>
    <title>使用js的DOM操作div和span元素</title>
    <script type="text/javascript">
                /*
                1、innerHTML
                用法一:将后面的字符串当做HTML代码解释并且执行
                    divElt.innerHTML="<font color='red'>hello World</font>"; 效果为将hello World字体颜色置为红色显示出来
                用法二:显示标记之间得所有内容,包括代码本身
                    alert(divElt.innerHTML);效果为 <font color='red'>hello World</font>
                2、innerText:即使后面指定的字符串是HTML代码,也只是当做普通字符串来处理
                    divElt.innerText="<font color='red'>测试</font>";效果为:<font color='red'>测试</font>
                3、div会独占一行,span被用来组合行内元素
                */
                function setDiv(){
                    //获取div元素
                    var divElt=document.getElementById("myDiv");
                    //可以通过innerHTML属性设置元素中的HTML代码,也可以获取该元素中的HTML代码
                    //divElt.innerHTML="<font color='red'>hello World</font>";
                    divElt.innerText="<font color='red'>测试</font>";
                    //获取div元素中的HTML代码
                    alert(divElt.innerHTML);//当为:<div id="myDiv"></div> 结果为: <font color='red'>hello World</font>
                }
            </script>
    </head>
    <body id="body1">
        <input type="button" value="设置div中的文本" onclick="setDiv();" />
        <!-- <div id="myDiv"></div> -->
        <span id="myDiv"></span>
    </body>
    </html>
    View Code

    9.3、失去焦点事件onblur(涉及正则表达式简单应用)

    <html>
        <head>
            <title>正则表达式</title>
            <script type="text/javascript">
                /*
                    1、正则表达式是一门独立的学科,和任何编程语言无关,
                    最初使用在医学方面,表示神经传输符号,在现代计算甲编程中也可以使用大量的正则表达式
                    2、在编程中使用正则表达式最主要是用来做字符串模式匹配的。尤其在JavaScript中使用正则表达式居多
                    3、在正则表达式中规定了一些特殊的符号,每一个符号都具有特殊的含义
                    4、在实际开发中我们可以从网络中搜索相关的常用的正则表达式,直接使用
                    但是使用前,需要进行反复的测试;javaScript程序员更应该研究在js中如何使用正则表达式而不是研究正则表达式该如何写
                    5、常见的正则表达式符号:
                        ^    字符串的开始
                        &    字符串的结束
                        s    空白
                        +    出现1-N次
                        *    出现0-N次
                        {2,5} 出现[2-5]次    
                        ?    出现至少1次
                        [0-9] 0-9的数字任意出现一个
                        [0-9a-zA-Z]{3,}  0-9a-zA-Z 之前的字符至少出现3次
                        
                    6、在js中怎么创建正则表达式对象?正则表达式对象中那个方法最常用?
                        创建正则表达式对象有两种方式:
                            第一种方式:【常用】
                                var regexp=/正则表达式/flag;
                            第二种方式:
                                var regexp=new RegExp("正则表达式","flag");    
                                
                            注:flag可选值:i、g、m
                                    i:忽略大小写
                                    g:当前行所有数据
                                    m:支持多行搜索
                                    i,g,m    可以合并使用
                        正则表达式对象中有一个很重要的方法:叫做test
                            语法格式:
                                var regexp=/正则表达式/;
                                var retValue=regexp.test(字符串);
                                retValue的值可能是true;true表示正则表达式符合正则表达式
                                retValue的值也可能是false;false表示正则表达式不符合正则表达式
                                
                
                */
                function checkEmail(email){
                    //这个也是重点:
                    var reg = new RegExp("^[a-z0-9]+([._\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$"); //正则表达式对邮箱地址格式验证
                    alert(email);
                    var ok=reg.test(email);//正则表达式有一个test()方法
                    var emailError=document.getElementById("emailError");
                    if(ok){
                        emailError.innerHTML="";
                    }else{
                        emailError.innerHTML="<font color='red'>邮箱地址格式错误</font>";
                    }
                    
                }
            </script>
        </head>
        <body>
            邮箱地址<input type="text" name="email" onblur="checkEmail(this.value);" />
            <span id="emailError"></span>
        </body>
    </html>
    View Code

    9.4、获取焦点事件onfocus(登录表单验证)

    <!DOCTYPE html>
    <html>
      <head>
        <title>表单验证.html</title>
      </head>
      <body>
        <script type="text/javascript">
            /*
                验证功能描述:
                    1、用户名不能为空
                    2、用户名长度6-14
                    3、密码不能为空
                    4、密码至少6位
                    5、密码和确认密码必须一致
            */
            String.prototype.trim=function(){
                return this.replace(/^s+/,"").replace(/s+&/,"");
            };
            function checkName(username){
                var ok=false;
                username=username.trim();//去除前后的空白
                var nameError=document.getElementById("nameError");
                if(username==""){
                    nameError.innerHTML="<font color='red'>用户名不能为空</font>";
                    ok=false;
                }else if(username.length<6 || username.length>14){
                    nameError.innerHTML="<font color='red'>用户名长度必须6-14</font>";
                    ok=false;
                }else{
                    nameError.innerHTML="";
                    ok=true;
                }
                return ok;
            }
            function clearNameError(){
                var nameError=document.getElementById("nameError");
                nameError.innerHTML="";
            }
            function checkUserpswd(){
                var ok=false;
                var pswdError=document.getElementById("pswdError");
                if(pswd==""){
                    pswdError.innerHTML="<font color='red'>密码不能为空</font>";
                    ok=false;
                }else if(pswd.length<6){
                    pswdError.innerHTML="<font color='red'>密码不能少于6位</font>"
                    ok=false;
                }else{
                    pswdError.innerHTML="";
                    ok=true;
                }
                return ok;
            }
            function clearPswdError(){
                var pswdError =document.getElementById("pswdError");
                pswdError.innerHTML="";
            }
            function isSame(){
                var ok=false;
                //获取密码
                var userpswd=document.getElementById("userpswd").value;
                //获取确认密码
                var confirmpswd=document.getElementById("confirmpswd").value;
                //比较
                var confirmPswdError=document.getElementById("confirmPswdError");
                if(userpswd != confirmpswd){
                    confirmPswdError.innerHTML("<font color='red'>密码和确认密码不一致"</font>);
                    ok=false;
                }else{
                    pswdError.innerHTML="";
                    ok=true;
                }
                return ok;
            }
            function clearSameError(){
                var confirmPswdError=document.getElementById("confirmPswdError");
                pswdError.innerHTML="";
            }
            function checkAll(){
                var username=document.getElementById("username").value;
                var userpswd=document.getElementById("userpswd").value
                if(checkName(username) && checkUserpswd(userpswd) && isSame()){
                    document.forms["userForm"].action="http://localhost:8080/oa/register";
                    document.forms["userForm"].method="get";
                    document.forms["userForm"].submit();
                }
            }
        </script>
        <form name="userForm">
            用户名
                <input
                    type="text"
                    id="username"
                    name="username"
                    onblur="checkName(this.value);"
                    onfocus="clearNameError();"
                    />
                <span id="nameError"></span>
                <br>
            密码    
                <input
                    type="password"
                    id="userpswd"
                    name="userpswd"
                    onblur="checkUserpswd(this.value);"
                    onfocus="clearPswdError();"/>
                <br>
                <span id="pswdError"></span>
            确认密码    
                <input
                    type="password"
                    id="confirmpswd"
                    name="confirmpswd"
                    onblur="isSame();"
                    onfocus="clearSameError()"/>
                <span id="confirmPswdError"></span>
                <br>
                <input type="button" value="注册" onclick="checkAll()">
        </form>
      </body>
    </html>
    View Code

    9.5、表单提交事件onsubmit

    <html>
        <head>
            <title>表单验证</title>
            <!--
                1、表单验证的时候,尽量不要在点击注册按钮的时候才验证,最好用户填写一个
                验证一个,这样设计比较人性化。
                2、表单提交事件:submit,事件句柄:onsubmit,这个事件句柄需要编写到form标签中    
                    <form onsubmit="return true;">提交表单
                    <form onsubmit="return true;">不提交表单
            -->
        </head>
        <body>
            <script type="text/javascript">
                var usernameOk=false;
                function checkUsername(username){
                    //alert(username);
                    //验证用户名不能为空
                    //if(username.length==0){}
                    var usernameErrorMsg=document.getElementById("usernameErrorMsg");
                }
                function checkUserName(username){
                    var usernameErrorMsg=document.getElementById("usernameErrorMsg");
                    if(username=="usernameErrorMsg"){
                        usernameErrorMsg.innerHTML="<font color='red'>用户名不能为空</font>";
                    }else if(username.lenght<6 || username.length>14){
                        usernameErrorMsg.innerHTML="<font color='red'>用户名长度必须在[6-14]之间</font>";
                    }esle{
                        usernameErrorMsg.innerHTML="";
                        usernameOk=ture;
                    }
                }
                function cleckNameError(){
                        var usernameErrorMsg=document.getElementById("usernameErrorMsg");
                        usernameErrorMsg.innerHTML="";
                }
                function checkAll(){
                    return false;
                }
            </script>
            <form
                name="username"
                method="get"
                action="http://localhost:8080"
                onsubmit="return checkAll();">
                用户名
                    <input
                    type="text"  
                    name="username"
                    onblur="checkUserName(this.value);"
                    onfocus="cleckNameError();"/>
                    <!--
                        其中的this代表文本框对象,
                    -->
                    <span id="usernameErrorMsg"></span><br>
                <input type="submit" value="注册" />
            </form>
        </body>
    </html>
    View Code

    10、js中的DOM对象和BOM对象
    10.1、DOM对象:创建元素,并追加元素

    <html>
      <head>
        <title>js中通过DOM创建元素,并追加元素</title>
        <script type="text/javascript">
            function addElt(){
                //alert("test");
                //向div节点中追加一个子节点font
                //1、获取div节点
                var myDiv=document.getElementById("myDiv");
                //2、创建font节点
                var fontElt=document.createElement("font");//重点方法
                fontElt.innerHTML="测试";
                fontElt.color="red";
                //3、将font节点追加到div节点中
                myDiv.appendChild(fontElt);//重点方法
            }
        </script>
      </head>
      <body>
          <input type="button" value="给div添加font标签" onclick="addElt();" />
          <div id="myDiv">
          </div>
      </body>
    </html>
    View Code

    document.location.href="http://www.baidu.com";
    document.location="http://www.baidu.com";

    10.2、BOM对象:window是BOM对象(Browser Object Model),代表整个浏览器窗口

    BOM对象:window是BOM对象(Browser Object Model),代表整个浏览器窗口
    window对象中的函数:eval()、open()、setInterval()、window.alert()、window.confirm()、window.open()
    window.location.href="http://www.baidu.com"
    window.location="http://www.baidu.com"

    1)eval函数

    <!DOCTYPE html>
    <html>
      <head>
        <title>eval函数</title>
        <script type="text/javascript">
            //eval函数的作用:将普通字符串当做js代码解释执行
            window.eval("var i=100;")
            //以上的程序等同于 var i=100;
            alert(i);
            /*
               重点:
                   java程序连接数据库之后,查询数据然后拼接成一个json格式的字符串发送给浏览器,浏览器只是接受到一个普通的json格式的字符串,然后在js中
                   使用eval函数,将json格式的字符串转换成json对象
            */
            var javaSendStr="var o={"usercode":110,"username":"zhangsan"};";
            window.eval(javaSendStr);
            alert(o.usercode+","+o.username);
        </script>
      </head>
      <body>
      </body>
    </html>
    View Code

    API地址: https://www.w3cschool.cn/javascript/js-window.html

    细水长流,打磨濡染,渐趋极致,才是一个人最好的状态。
  • 相关阅读:
    HttpClient使用
    十九、springboot使用@ControllerAdvice(二)之深入理解
    如何同步删除svn管理的package包目录
    在使用FastJson开发遇到的的坑
    解决tomcat端口被占用:Port 8005 required by Tomcat v7.0 Server at localhost is already in use
    SpringBoot使用Mybatis-Generator
    SpringCloud Gateway入门
    使用Nginx部署静态网站
    SpringBoot使用Jsp
    SpringBoot应用War包形式部署到外部Tomcat
  • 原文地址:https://www.cnblogs.com/jiarui-zjb/p/7550587.html
Copyright © 2011-2022 走看看