JavaScript入门

JavaScript入门

1. JavaScript引入页面的三种方式

  1. 行间事件

    <!-- 第一种页面引入js的方式:行间事件 不推荐使用 -->
    <div onclick="alert('hello world')">这是一个div</div>
    
  2. 内嵌式

    <!-- 第二种页面引入js的方式:内嵌式 部分推荐使用 -->
    <script>
    	alert("hello world again!!!")
    </script> 
    
  3. 外链式

    <!-- 第三种页面引入js的方式:外链式 推荐使用 -->
    <script src="js/hello.js">
    	// 在这里写js代码无效
    </script>
    
    alert("hello world three!")
    

2. JavaScript的变量、数据类型及基本语法规范

2.1变量类型

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

1种复合类型:
object

2.2 变量定义

JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定。声明变量使用var关键字

var iNum = 123;
var sTr = 'asd';

2.3 变量命名

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

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

匈牙利命名风格:

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

<script>  
    // 以下全部是JavaScript的作用范畴
    // 单行注释
    /*
            多行注释
        */

    // 定义变量
    /*var iNum01 = 12;
        var sTr = 'abc';
        var bIsMove = true;*/
    var iNum01 = 12, sTr = 'abc', bIsMove = true;
    // 变量声明但是没有赋值,它的值和类型的undefined
    var iNum02;

    alert(iNum01);
    alert(sTr);
    alert(bIsMove);
    alert(iNum02);

</script>

3. JavaScript函数与预解析

预解析:JavaScript中的函数和变量的定义和提前到代码的一开始,变量的值是undefined,变量的赋值不会提前。

函数使用方法:

<script>
    // 函数调用 -- 可以写在函数定义的前面
    // 函数预解析
    fnMyalert();

    // 定义函数
    function fnMyalert() {
        alert('hello');
    }

    // 在变量的定义前调用一个变量,会得到undefined
    alert(iNum01);
    var iNum01 = 12;
    alert(iNum01);

</script>

4. 获取元素的方法,操作标签

在JavaScript中通过使用内置对象document可以获取标签,并且操作标签的属性

操作元素属性
var 变量 = 元素.属性名 读取属性
元素.属性名 = 新属性值 改写属性

属性名在js中的写法

  1. html的属性和js里面属性写法一样
  2. “class” 属性写成 “className”
  3. “style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <!--
    <script>
        // 代码是从上往下执行的,在这里无法找到下面写的div1对象
        document.getElementById("div1").style.color = 'blue';
    </script>
     -->

     <script>
         // 等整个页面加载完之后再执行其中的代码
         window.onload = function(){
             var oDiv1 = document.getElementById("div1");
             oDiv1.style.color = 'blue';
             oDiv1.style.width = '300px';
             oDiv1.style.height = '300px';
             oDiv1.style.background = 'gold';
             oDiv1.style.fontSize = '30px';
             alert(oDiv1.style.color);  // 读出属性的值
         }
    </script>

</head>
<body>
    <div id="div1" style="color: red;">这是一个div</div>

    
</body>
</html>
  • 获取属性的值和操作属性的值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .style01{
            font-size: 20px;
            color: red;
        }
        .style02{
            font-size: 30px;
            color: pink;
            text-decoration: none;
        }
    </style>

    <script>
        window.onload = function(){
            var oDiv1 = document.getElementById("div1");
            var oA = document.getElementById("link01");

            // 读取属性值
            var sId = oDiv1.id;
            // alert(sId);
            // 写属性,设置属性
            oDiv1.style.color = 'red';

            var sColor = oDiv1.style.color;
            // 标签里面没有写的属性,读取的是空字符串
            // var sSize = oDiv.style.fontSize;
            // alert(sColor);
            
            // 操作class属性
            oA.className = 'style02';

            // 操作标签包裹的内容
            // 读取标签包裹的内容
            var sTr = oDiv1.innerHTML;
            // alert(sTr);

            // 写标签包裹的内容 -- 给innerHTML赋值
            oDiv1.innerHTML = '改变的文字';
            oDiv1.innerHTML = '<a href="http://www.baidu.com">百度一下</a>';
            oDiv1.innerHTML = '<ul><li>列表文字</li><li>列表文字</li><li>列表文字</li></ul>'
        }
    </script>

</head>
<body>
    <div id="div1">这是一个div</div>
    <a href="#" class="style01" id="link01">这是一个链接</a>
</body>
</html>

5. 事件处理

实现点击按钮改变元素的样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>
        window.onload = function(){
            var oBtn = document.getElementById("btn");
            var oDiv = document.getElementById("div1");

            // function fnChange(){
            //     oDiv.style.width = '200px';
            //     oDiv.style.height = '200px';
            //     oDiv.style.background = 'gold';
            // }
            // fnChange();

            // 在这里不能给函数名后面加(),如果加了括号代表是函数执行
            // 这里表示的是函数与标签的关联
            // oBtn.onclick = fnChange;

            // 匿名函数写法
            oBtn.onclick = function(){
                oDiv.style.width = '200px';
                oDiv.style.height = '200px';
                oDiv.style.background = 'gold';
            }
        }
    </script>

</head>
<body>
    <input type="button" value="改变样式" id="btn">
    <div id="div1">这是一个div</div>
</body>
</html>

6. 网页换肤练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <link rel="stylesheet" href="css/skin01.css" id="link01">

    <script>
        window.onload = function(){
            // 获取link标签的两个按钮标签
            var oLink = document.getElementById("link01");
            var oBtn1 = document.getElementById("btn01");
            var oBtn2 = document.getElementById("btn02");

            oBtn1.onclick = function(){
                oLink.href = 'css/skin01.css'
            }
            oBtn2.onclick = function(){
                oLink.href = 'css/skin02.css'
            }
        }
    </script>

</head>
<body>
    <h1>网页内容</h1>
    <input type="button" value="皮肤一" id="btn01">
    <input type="button" value="皮肤二" id="btn02">
</body>
</html>

7. 条件语句及判断

==号默认会发生隐式转换,即将符号左右两边的变量转换为数字形式再进行对比

var iNum01 = 12;
var sNum01 = '12';
// 此时的sNum01会被转换为数字类型
if(iNum01 == sNum01){
    alert("相等");
}else{
    alert('不相等');
}
// 相等

解决这个问题使用===,此时不发生隐式转换

var iNum01 = 12;
var sNum01 = '12';
// 此时的sNum01会被转换为数字类型
if(iNum01 === sNum01){
    alert("相等");
}else{
    alert('不相等');
}
// 不相等

8. 聊天对话框练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style type="text/css">
        .talk_con{
            width:600px;
            height:500px;
            border:1px solid #666;
            margin:50px auto 0;
            background:#f9f9f9;
        }
        .talk_show{
            width:580px;
            height:420px;
            border:1px solid #666;
            background:#fff;
            margin:10px auto 0;
            overflow:auto;
        }
        .talk_input{
            width:580px;
            margin:10px auto 0;
        }
        .whotalk{
            width:80px;
            height:30px;
            float:left;
            outline:none;
        }
        .talk_word{
            width:420px;
            height:26px;
            padding:0px;
            float:left;
            margin-left:10px;
            outline:none;
            text-indent:10px;
        }        
        .talk_sub{
            width:56px;
            height:30px;
            float:left;
            margin-left:10px;
        }
        .atalk{
           margin:10px; 
        }
        .atalk span{
            display:inline-block;
            background:#0181cc;
            border-radius:10px;
            color:#fff;
            padding:5px 10px;
        }
        .btalk{
            margin:10px;
            text-align:right;
        }
        .btalk span{
            display:inline-block;
            background:#ef8201;
            border-radius:10px;
            color:#fff;
            padding:5px 10px;
        }
    </style>
    <script type="text/javascript">      
        // 写出对应功能代码  
        window.onload = function(){
            // 选中所有要操作的标签
            var oWords = document.getElementById("words");
            var oWho = document.getElementById("who");
            var oTalk = document.getElementById("talkwords");
            var oBtn = document.getElementById("talksub");

            // 给发送按钮绑定onclick事件
            oBtn.onclick = function(){
                // 读取下拉框的value属性值
                var sVal01 = oWho.value;
                
                // 读取输入框的值, 也是读取val属性值
                var sVal02 = oTalk.value;
                // 清空oTalk输入框
                oTalk.value = "";
                
                // 不能发空的内容,判断输入框是不是为空
                if(sVal02 == "")
                {
                    alert("发送内容不能为空!请输入聊天内容!");
                    // 结束函数运行
                    return;
                }

                var sTr = "";
                // 判断是A说还是B说
                if(sVal01==0){
                    // A说
                    sTr = '<div class="atalk"><span>A说:'+sVal02+'</span></div>';
                }else{
                    // B说
                    sTr = '<div class="btalk"><span>B说:'+sVal02+'</span></div>';
                }

                // 将拼接的结构的字符串放到words标签中
                oWords.innerHTML += sTr;
            }

        }

    </script>
</head>
<body>
    <div class="talk_con">
        <div class="talk_show" id="words">
            <div class="atalk"><span>A说:吃饭了吗?</span></div>
            <div class="btalk"><span>B说:还没呢,你呢?</span></div>
        </div>
        <div class="talk_input">
            <select class="whotalk" id="who">
                <option value="0">A说:</option>
                <option value="1">B说:</option>
            </select>
            <input type="text" class="talk_word" id="talkwords">
            <input type="button" value="发送" class="talk_sub" id="talksub">
        </div>
    </div>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值