• 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>
  • 相关阅读:
    react 【ref转发forwardRef】【useImperativeHandle】
    node 【redis 使用】
    vue vuerouter 实现原理
    webpack基础 【loader使用】
    【编程范式】范式新感悟
    【领域驱动设计】最佳实践之:单据集合根、命令、状态机
    【读书笔记】架构整洁之道
    Java中的Unsafe在安全领域的一些应用总结和复现
    CVE202222947 Spring Cloud Gateway SPEL RCE复现
    java高版本下各种JNDI Bypass方法复现
  • 原文地址:https://www.cnblogs.com/zeon/p/13623664.html
Copyright © 2020-2023  润新知