zoukankan      html  css  js  c++  java
  • JavaScript基础(一)

     

    1. JavaScript的定义

    JavaScript是运行在浏览器端的脚步语言, 是由浏览器解释执行的, 简称js, 它能够让网页和用户有交互功能, 增加良好的用户体验效果

     JavaScript是浏览器解释执行的,前端脚本语言还有JScript(微软,IE独有),ActionScript( Adobe公司,需要插件)等。

    前端三大块
    1、HTML:页面结构
    2、CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果
    3、JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能

    2. JavaScript的使用方式

    1. 行内式(主要用于事件)

    2. 内嵌式

    3. 外链式

    <input type="button" name="" onclick="alert('ok!');">
    <script type="text/javascript">        
        alert('ok!');
    </script>
    <script type="text/javascript" src="js/index.js"></script>

    3.变量和数据类型

    3.1  定义变量

    JavaScript 是一种弱类型语言,也就是说不需要指定变量的类型,JavaScript的变量类型由它的值来决定,

    定义变量需要用关键字 'var', 一条JavaScript语句应该以“;”结尾

    定义变量的语法格式:

    var 变量名 = 值;

     var iNum = 123;
     var sTr = 'asd';
    
     //同时定义多个变量可以用","隔开,公用一个‘var’关键字
    
     var iNum = 45,sTr='qwe',sCount='68';

    3.2  JavaScript注释

    JavaScript的注释分为单行注释(//注释内容)和多行注释(/多行注释/)

    <script type="text/javascript">    
    
    // 单行注释
    var iNum = 123;
    /*  
        多行注释
        1、...
        2、...
    */
    var sTr = 'abc123';
    </script>

    3.3   数据类型

    js中有六种数据类型,包括五种基本数据类型和一种复杂数据类型(object)。

    5种基本数据类型:
    1、number 数字类型
    2、string 字符串类型
    3、boolean 布尔类型 true 或 false
    4、undefined undefined类型,变量声明未初始化,它的值就是undefined
    5、null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null

    1种复合类型:
    1、object 后面学习的数组、函数和JavaScript对象都属于复合类型

    //1.1 数字 number
    var iOne = 10.1;
    
    //1.2 字符串 string
    var sStr = '1234';
    
    //1.3 布尔 boolean; 
    var bIsTrue = false;
    
    //1.4 未定义 undefined
    var unData;
    
    //1.5 null 表示空对象
    var nullData = null;
    
    //1.6 object 表示对象类型
    var oObj = {
       name:"隔壁老王",
       age:88
    }
    // 获取变量的类型
    var type = typeof(oObj);
    alert(type);
    // 获取对象的name属性
    alert(oObj.name);

    3.4  变量、函数、属性、函数参数命名规范

    1、区分大小写
    2、第一个字符必须是字母、下划线(_)或者美元符号($)
    3、其他字符可以是字母、下划线、美元符或数字

    3.5  匈牙利命名风格:

    对象o Object 比如:oDiv
    数组a Array 比如:aItems
    字符串s String 比如:sUserName
    整数i Integer 比如:iItemCount
    布尔值b Boolean 比如:bIsComplete
    浮点数f Float 比如:fPrice
    函数fn Function 比如:fnHandler
    正则表达式re RegExp 比如:reEmailCheck

    4.  函数定义和调用

    4.1  函数定义

    函数就是可以重复使用的代码块, 使用关键字 function 定义函数。

    <script type="text/javascript">
        // 函数定义
        function fnAlert(){
            alert('hello!');
        }
    </script>

    4.2变量与函数预解析

    JavaScript解析过程分为两个阶段,先是编译阶段,然后执行阶段,在编译阶段会将function定义的函数提前,并且将var定义的变量声明提前,将它赋值为undefined。

    <script type="text/javascript">    
        fnAlert();       // 弹出 hello!
        alert(iNum);  // 弹出 undefined
        function fnAlert(){
            alert('hello!');
        }
        var iNum = 123;
    </script>

    4.3提取行间事件

    在html行间调用的事件可以提取到javascript中调用,从而做到结构与行为分离

    <!--行间事件调用函数   -->
    <script type="text/javascript">        
        function fnAlert(){
            alert('ok!');
        }
    </script>
    ......
    <input type="button" name="" value="弹出" onclick="fnAlert()">
    
    <!-- 提取行间事件 -->
    <script type="text/javascript">
    
    window.onload = function(){
        var oBtn = document.getElementById('btn1');
        oBtn.onclick = fnAlert;
        function fnAlert(){
            alert('ok!');
        }
    }    
    </script>
    ......
    <input type="button" name="" value="弹出" id="btn1">

    4.4. 函数调用

    函数调用就是函数名加小括号,比如:函数名(参数[参数可选])

    <script type="text/javascript">
        // 函数定义
        function fnAlert(){
            alert('hello!');
        }
        // 函数调用
        fnAlert();
    </script>

    4.5匿名函数

    定义的函数可以不给名称,这个叫做匿名函数,可以将匿名函数直接赋值给元素绑定的事件来完成匿名函数的调用

    <script type="text/javascript">
    
    window.onload = function(){
        var oBtn = document.getElementById('btn1');
        /*
        oBtn.onclick = myalert;
        function myalert(){
            alert('ok!');
        }
        */
        // 直接将匿名函数赋值给绑定的事件
    
        oBtn.onclick = function (){
            alert('ok!');
        }
    }
    
    </script>

    4.6. 定义有参数有返回值的函数

    定义函数时,函数如果有参数,参数放到小括号里面,函数如果有返回值,返回值通过 return 关键字来返回

    <script type="text/javascript">
    function fnAdd(iNum01,iNum02){
        var iRs = iNum01 + iNum02;
        return iRs;
        alert('here!');
    }
    
    var iCount = fnAdd(3,4);
    alert(iCount);  //弹出7
    </script>

    函数中'return'关键字的作用:
    1、返回函数中的值
    2、执行完return函数执行结束

    5.获取标签元素

    (一):

    可以使用内置对象 document 上的 getElementById 方法来获取页面上设置了id属性的标签元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:

    <script type="text/javascript">
        var oDiv = document.getElementById('div1');
        alert(oDiv);
    </script>
    <div id="div1">这是一个div元素</div>

    说明:
    上面的代码,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载。

    解决方法有两种:

    第一种方法:将javascript放到页面最下边 第二种方法:设置页面加载完成执行的函数,在执行函数里面获取标签元素
    <div id="div1">这是一个div元素</div>
    
    <script type="text/javascript">
        var oDiv = document.getElementById('div1');
        alert(oDiv);
    </script>
    <script type="text/javascript">
        window.onload = function(){
            var oDiv = document.getElementById('div1');
        }
    </script>

    说明:
    onload是页面所有元素加载完成的事件,给onload设置函数时,当事件触发就会执行设置的函数

    (二):

    可以使用内置对象document上的getElementsByTagName方法来获取页面上的某一种标签,获取的是一个选择集,不是数组,但是可以用下标的方式操作选择集里面的标签元素。

    <script type="text/javascript">
        window.onload = function(){
            var aLi = document.getElementsByTagName('li');
            // aLi.style.backgroundColor = 'gold'; // 出错!不能同时设置多个li
            alert(aLi.length);
            aLi[0].style.backgroundColor = 'gold';
        }
    </script>
    ....
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>

    课堂练习:
    使用循环操作列表中的每个元素

    6. 操作标签元素属性

    获取的页面元素,就可以对页面元素的属性进行操作,属性的操作包括属性的读和写操作属性的方法
    1、“.” 操作
    2、“[ ]”操作

    属性写法:

    1、html的属性和js里面属性写法一样,但是记得“class” 属性写成 “className”

    3、“style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”

    通过“.”操作属性: 通过“[ ]”操作属性:
    <script type="text/javascript">
    
        window.onload = function(){
            var oInput = document.getElementById('input1');
            var oA = document.getElementById('link1');
            // 读取属性值
            var sValue = oInput.value;
            var sType = oInput.type;
            var sName = oInput.name;
            var sLinks = oA.href;
            // 写(设置)属性
            oA.style.color = 'red';
            oA.style.fontSize = sValue;
        }
    
    </script>
    
    ......
    
    <input type="text" name="setsize" id="input1" value="20px">
    <a href="http://www.itcast.cn" id="link1">传智播客</a>
    <script type="text/javascript">
    
        window.onload = function(){
            var oInput1 = document.getElementById('input1');
            var oInput2 = document.getElementById('input2');
            var oA = document.getElementById('link1');
            // 读取属性
            var sVal1 = oInput1.value;
            var sVal2 = oInput2.value;
            // 写(设置)属性
            // oA.style.val1 = val2; 没反应
            oA.style[sVal1] = sVal2;        
        }
    
    </script>
    
    ......
    
    <input type="text" name="setattr" id="input1" value="fontSize">
    <input type="text" name="setnum" id="input2" value="30px">
    <a href="http://www.itcast.cn" id="link1">传智播客</a>

    6.2innerHTML


    innerHTML可以读取或者写入标签包裹的内容

    <script type="text/javascript">
        window.onload = function(){
            var oDiv = document.getElementById('div1');
            //读取
            var sTxt = oDiv.innerHTML;
            alert(sTxt);
            //写入
            oDiv.innerHTML = '<a href="http://www.itcast.cn">传智播客<a/>';
        }
    </script>
    
    
    <div id="div1">这是一个div元素</div>
  • 相关阅读:
    Java实现 蓝桥杯 算法提高 特等奖学金(暴力)
    Java实现 蓝桥杯 算法提高 特等奖学金(暴力)
    Java实现 蓝桥杯 算法提高 GPA(暴力)
    Java实现 蓝桥杯 算法提高 GPA(暴力)
    Java实现 蓝桥杯 算法提高 GPA(暴力)
    Java实现 蓝桥杯 算法提高 套正方形(暴力)
    Java实现 蓝桥杯 算法提高 套正方形(暴力)
    第一届云原生应用大赛火热报名中! helm install “一键安装”应用触手可及!
    云原生时代,2个方案轻松加速百万级镜像
    Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler
  • 原文地址:https://www.cnblogs.com/zeon/p/13623664.html
Copyright © 2011-2022 走看看