javascript

javascript

一、js的简介

1、js是什么

Js是一种轻量级的脚本编程语言

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YxnIRwj0-1602655615055)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12584\wps1.jpg)]

2、特点

灵活性 弱类型 易用 基于对象 跨平台

3、作用

  • 操作元素对象,是页面实现动态效果,提高用户体验度
  • 进行表单验证
  • 可以发送ajax请求

4、组成部分

​ js由三部分组成

  • ECMAscript是js的核心,定义了js的语法、变量、规则等等
  • DOM-document object Model 文档对象模型
  • BOM-brower object model 浏览器对象模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cS6U7BgX-1602655615063)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12584\wps2.jpg)]

二、js的引入

****行内式****:在开始标记中使用事件相对于的属性引入js代码

Eg:

行内式

****内嵌式****:可以在网页中任意位置添加script标签,标签中获取元素,添加事件属性以及属性对应的js代码

Eg:

****外链式****:外部新建一个js文件,文件中获取元素,添加事件属性以及属性对应的js代码;在需要引入该脚本文件的网页中使用script标签中的src属性引入js文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wf50iXYI-1602655615065)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12584\wps3.jpg)]

注意:

1、在获取网页中元素时需要确保该元素已经加载完成

2、script标签在引入了外部js文件之后,中间不能继续书写js代码(书写无效)

三、js中六种输出方式

1、alert()弹窗

2、confirm()确认弹窗 有返回值

3、console.log()浏览器控制台输出

4、innerText 元素中输出文本内容

5、innerHTML 元素添加子元素或文本输出

6、value 对元素设置value属性设置值

Eg:
//alert("hello!");
//var flag =confirm("你确定要删除?");//根据选择的是确定、取消给出相应返回结果 true/false
//console.log(111)
//document.getElementById("box").innerText = "<span style='color:red'>中午好</span>";//覆盖元素中的文本内容
//document.getElementById("box").innerHTML = "<span style='color:red'>中午好</span>";//添加子元素或文本内容
document.getElementById("inp").value = "马云";

练习:

 <style>
        #lamp{
            width: 100px;
            height: 100px;
            background-color: yellow;
            border-radius: 50%;
            margin:30px 0 0 100px;
        }
        #btn{
            width: 60px;
            height: 30px;
            text-align: center;
            line-height: 30px;
            border-radius: 4px;
            background-color: dodgerblue;
            margin-left:120px;
        }
        #staff{
            width: 10px;
            height: 500px;
            background-color: goldenrod;
            margin-left: 145px;
        }
    </style>
</head>
<body>
<div id="lamp"></div>
<div id="btn">关灯</div>
<div id="staff"></div>
<script>
    document.getElementById("btn").onclick = function () {
        var text = document.getElementById("btn").innerText;
        if(text=="关灯"){
            document.body.style.backgroundColor = "black";
            document.getElementById("btn").innerText = "开灯";
        }else{
            document.body.style.backgroundColor = "white";
            document.getElementById("btn").innerText = "关灯";
        }

    }
</script>
多种形式获取网页中的元素对象
  //1、使用id获取对应元素
//        var text = document.getElementById("box").innerText;
        //2、使用类名获取元素--以数组形式返回,对指定元素操作需要使用索引获取
//        var text = document.getElementsByClassName("outer")[0].innerText;
        //3、使用标签名获取元素--以数组形式返回,对指定元素操作需要使用索引获取
        var text = document.getElementsByTagName("div")[0].innerText
        console.log(text);

四、js中数据类型以及运算符

Java中数据
int  num = 10;
string name=”张三”;

Js中数据
Var num = 10;
Var name = “张三”

变量命名规则:
    var num = 100;
//  console.log(Num);//js中变量名大小写敏感
//  var 1num = 100; //不能以数字开头
//  var if = "mary";//不能使用关键字和保留字
    var studentScoreInformation = 100;//命名以驼峰式
    var stuScoreInfo = 99;//尽量简化
js中有5大基本数据类型 4大引用数据类型

基本数据类型 :

Number :整数 小数 —还包含NaN

String :字符串 需要加引号

Undefined:未定义 本质上就是空的 只有一个值 undefined

Null: 为空 有一个为空的占位符 只有一个值null

Boolean: true/false

var num = 10.1;
console.log(typeof  num)//number
var str = "12px";
console.log(typeof  str);//string

var u = undefined;
console.log(typeof  u);//undefined
var n = null;
console.log(typeof  n);//object
var flag = (u==n);
console.log(flag);//true
var flag2 = (u===n);
console.log(flag2);//false

var ff = true;
console.log(ff==1);//true
var ss = false;
console.log(ss==0);//true

注意: ===比较,先比较类型,若得到true的结果一定是类型一致

​ == 先进行类型的转换 再进行比较 若得到true的结果不一定是类型一致

Number中的NaN:
   //NaN是number
    var numb = NaN;
    console.log(typeof  numb);//number
    console.log(Number("12px"));//NaN
    console.log(Number("12"));//Number()可以将其他数据类型转为number类型
    console.log(12);

//  var flag = isNaN(NaN)//is not a number?  是不是NaN     ----true
//  var flag = isNaN(12)//is not a number?  是不是NaN      ----false
    var flag = isNaN("12px")//is not a number?  是不是NaN   ----true
    console.log(flag);
引用数据类型:

数组array 对象object 函数function 正则regExp

var arr = [“aa”,”bb”,”cc”,”dd”];
var obj = {name:”cuihua”,age:18,address:”三里屯”}
var sum = function(){  js代码块 }
var reg = /ab/
Eg:
    var arr = ["aa","bb","cc","dd"];
//    console.log(arr[2]);//cc
/*    for(var i=0;i<arr.length;i++){
        console.log(arr[i]);
    }*/
/*    for(var num in arr){
        console.log(arr[num])
    }*/
var obj = {name:"cuihua",age:18,address:"三里屯",sex:true,1:"aaa"};
//console.log(obj.sex);
//console.log(obj.name);
//console.log(obj[1]);
//console.log(obj["address"]);
/*for(var key in obj){
    console.log(obj[key]);
}*/
var sum = function(){
    var c = arguments[0]+arguments[1]+arguments[2] ;
    console.log(c);
    return c;
}

/* function sum(){
        var c = arguments[0]+arguments[1]+arguments[2] ;
        console.log(c);
        return c;
 }
var reNum = sum(40,10,20);
alert(reNum)*/
var reg = /aa/;
var flag = reg.test("bcdaaaa");
console.log(flag);//false
Js中的运算符与java中类似

算数运算符 + - * / % mud

比较运算符 > < >= <= == ===

逻辑运算符 ! || &&

三元运算符: var a = 10与 var b = 20比较,若a大输出“辣椒炒肉”,b大输出“肉炒辣椒”

Var str = a>b?”辣椒炒肉”:”肉炒辣椒”

五、函数

函数创建:

格式:function 函数名(){ js代码块 }

原理:

1、在堆内存中开辟一块空间

​ 2、将函数中的js代码块转换成js字符串存储在该堆内存中

​ 3、将该堆内存地址赋给函数名

函数的执行:

格式: 函数名()

原理:

1、开辟一个私有的栈内存空间

2、通过函数名获取到js字符串

3、将js字符串转换为js代码块在私有栈中运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8RT2jBGM-1602655615070)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12584\wps46.jpg)]

六、定时器

早上闹钟、下课铃声、定时炸弹

开发中所见定时器:定时的广告弹窗、定时的数据推送、轮播图

分析可得:有两种类型

超时定时器:指定一个时间段,超过该时间执行函数----一次性

周期性定时器:每隔一段相同时间执行的函数----------------周期性

超时定时器:

格式:setTimeOut(参数1,参数2)

​ 参数1:到点之后执行的js代码块或函数

​ 参数2:指定时间,毫秒为单位

清除格式:clearTimeOut(参数)

参数:创建定时器时的返回值

周期性定时器:

格式:setInterval(参数1,参数2)

​ 参数1:每个一段相同时间执行的js代码块或函数

​ 参数2:指定间隔时间,毫秒为单位
​ 清除格式:clearInterval(参数)

参数:创建定时器时的返回值

<script>
//    setTimeout("fn()",2000);
    //创建超时定时器
    var id = setTimeout(fn,2000);//建议使用
    function fn(){
        alert('boom~');
    }
    //清除定时器
    clearTimeout(id);
</script>

<script>
    //创建周期性定时器
    var id = setInterval(fn,2000);
    function fn(){
        alert("懒虫起床");
    }
    //清除定时器
    clearInterval(id);
</script>

轮播图案例:

<body>
    <!--1、使用img标签向网页中引入图片-->
    <img src="image/img1.png" width="100%" height="420px" />

    <script>
//        2、开启一个周期性定时器  定时间为3s  执行一次函数change-
        setInterval(change,3000);
//        3、change中循环切换src值
        var num = 1;
        function change(){
            num ++;
            num = num>3?1:num;
            document.getElementsByTagName("img")[0].src = "image/img"+num+".png";
        }
    </script>
</body>

七、正则

元字符

^ 开始标记

$ 结束标记

\d 0-9任意数字

\w 数字知名下划线

\D 除了\d之外其他字符

\W 除了\w之外的其他字符

. 任意字符

. .本身

量词

* {0,}出现任意多次

+ {1,}至少出现一次

? {0,1}出现0或1次

{n,} 至少出现n次

{n,m} 出现n到m次

{n} 出现n次

| ( )

[abcd]

[a-zA-Z]

[^abc]

练习:

1、用户名验证: 以字母开头, 有6到12位字符 除第一位之外其他位数字字母下划线

Var reg = /1\w{5,11}$/;

2、密码验证: 第一位为大写字母 后面加5到9位小写字母

Var reg = /2[a-z]{5,9}$/;

3、手机号码: 以1开头 第二位为3456789中的任意一位 后面的9位为任意数字

Var reg = /^1[3-9]\d{9}$/;

4、邮箱验证: 4到6位数字字母 加@ 加6位的数字字母下划线 可以加上.com

Var reg = /3{4,6}@\w{6}(.com)?$/;

<body>
<form action="3、开关灯.html" method="get">
    USERNAME: <input type="text" name="uname" id="uname"><span id="nameMsg"></span><br>
    PASSWORD: <input type="password" name="upwd" id="upwd"><br>
    <input type="button" value="提交" id="sub">
</form>
<script>
    document.getElementById("sub").onclick = function(){
        //当点击提交按钮,获取用户名信息
        var uname = document.getElementById("uname").value;
        //检查用户名是否输入,未输入给出提示
        if(uname==null||uname.trim().length==0){
            //为空
            alert("请输入用户名");
            return false;
        }
        //使用正则验证该信息是否符合要求
        var reg = /^[a-zA-Z]\w{5,11}$/;
        var flag = reg.test(uname);
        //符合要求继续提交表单,反之 取消提交动作
        if(!flag){//验证不通过
            document.getElementById("nameMsg").innerText = "格式不正确";
            document.getElementById("nameMsg").style.color = "red";
            return false;//取消提交动作
        }else{//验证通过
            document.getElementById("nameMsg").innerText = "格式正确";
            document.getElementById("nameMsg").style.color = "green";
        }
    }
</script>

验证该信息是否符合要求
var reg = /4\w{5,11}$/;
var flag = reg.test(uname);
//符合要求继续提交表单,反之 取消提交动作
if(!flag){//验证不通过
document.getElementById(“nameMsg”).innerText = “格式不正确”;
document.getElementById(“nameMsg”).style.color = “red”;
return false;//取消提交动作
}else{//验证通过
document.getElementById(“nameMsg”).innerText = “格式正确”;
document.getElementById(“nameMsg”).style.color = “green”;
}
}



  1. a-zA-Z ↩︎

  2. A-Z ↩︎

  3. 0-9a-zA-Z ↩︎

  4. a-zA-Z ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值