javaScript入门

目录

1.什么是JavaScript?

2.JS快速入门

1.引入JavaScript

    1.1、内部引入

    1.2、外部引用

2.基本语法入门

2.1、基本类型

2.2、严格检查模式

3.数据类型

3.1、字符串

3.2、数组

3.3、对象

3.4、流程控制

3.5、iterator

4.函数及面向对象

4.1函数定义及变量作用域

4.1方法

4.2对象

4.3json

5.面向对象编程

4.2闭包

4.3箭头函数

4.6原型链继承

6.操作Bom元素

7.操作Dom元素

8.操作表单

9.JQuery(要导入本地JQuery文件)


1.什么是JavaScript?

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言

详情点击这里

2.JS快速入门

1.引入JavaScript

    1.1、内部引入

<script>
       alert('hello world');
</script>

    1.2、外部引用

<script src="xxx.js"></script>

2.基本语法入门

<!--javascript严格区分大小写-->
    <script>
        //1.定义变量   变量类型  变量名=变量值;
        var age = 18;
        var name = "xxxx";
        //支持if语句
        //console.log(age)  再浏览器的控制态输出变量
    </script>

2.1、基本类型

        数值、文本、图形、音频...

number:js不区分小数和整数
字符串:
布尔值:
逻辑运算:&&   ||    !
比较运算符:=         ==等于(类型不一样,值一样也会判断为true)   ===绝对等于

注意:
1.NaN与所有值都不相等,包括它自己   NaN===NaN  为false,只能通过isNaN(NaN)来判断是否为NaN。
2.不要用==来比较,一般用===

数组:js数组中不一定要相同类型的对象

var arr = [1,2,'name',null];

对象:大括号,逗号隔开

var Student {
    name:"xxx",
    age:15,
    arr:[1,2,3]
}

2.2、严格检查模式

<!--用let定义局部变量-->
    <script>
        'use strict'//严格检查模式,卸载第一行
        let i=1;
    </script>

3.数据类型

3.1、字符串

 1.支持单引号和双引号

2.多行字符串用  ``

let s=`ab
       c
      def`

3.模板字符

let name="xxx";
let s=`yyy,${name}`;

3.2、数组

数组可以包含任意数据类型

1.给arr.length赋值可以改变数组大小
2.arr.indexof(x)  获取通过元素获取下标
3.slic()  截取数组的一部分,返回新数组,和substring()类似
4.pop() 弹出 push()压入    在尾部操作
5.unshift()压入 shift()弹出  在头部操作
6.sort() 排序  reverse()反转
7.arr.concat([1,2,3])     arr连接[1,2,3]
8.arr.join(-)  用 - 连接各个元素

3.3、对象

var 对象名{
      属性名:属性值,
      属性名:属性值
}

1.使用一个不存在的对象不会报错, 显示 undefined
2.动态删减属性:delete 对象名.属性
3.动态添加:直接给新的属性赋值就好了    对象名.新属性=xxx
4.判断对象是否有某个属性 对象名.hasOwnProperty('xxx')

3.4、流程控制

1.if判断、while循环、 和其它语言一致
2.arr.forEach(function(value){ console.log(value) })输出arr数组里的元素
   for i in arr{ console.log( arr[i] ) }//i是索引
3.Map和Set
   Map:类似字典                        可用get()通过key获得value,用set()增添或修改值
   Set:无序不重复真的值          add()//添加  delete()//删除  has()//包含

3.5、iterator

用 for ... of... 遍历 Map和Set  例:for( let x of map )  

4.函数及面向对象

4.1函数定义及变量作用域

函数定义:      
      function 函数名(参数){ return 返回值; }
arguments代表传递进来的所有参数,是一个数组
获取剩余的参数

function f(a,b,...x) {
            console.log("a="+a);
            console.log("b="+b);
            console.log("剩下的参数="+x);
        }

 变量的作用域:

1.var定义的变量作用域:若在函数体内只能用于函数体
2.若内部函数与外部函数的变量重名:会先从函数自身开始由内向外查找
3.全局对象(window),默认所有的全局变量都会自动绑定在window对象下

4.如果不同的js文件使用了相同的全局变量就会相互冲突,
   解决方法:把自己的代码放入全部放入自己命名的唯一空间中,降低全局命名冲突问题

    var global_variable={};//唯一全局变量
        global_variable.name = "xxx";
        global_variable.add = function (a,b) {
            return a+b;
        }

局部作用域:let 
常量关键字:const

4.1方法

       在函数里面,方法内部也可使用this,this无法指定,默认指向调用它的那个对象
       可以用apply控制this的指向:
       方法名.apply(类名,[])                 this指向对象名,参数为空

4.2对象

var D = new Date();
D.getFullYear();
D.getMonth();
D.getTime();//获取时间戳,全国统一,从1970年开始算起

4.3json

      JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。json详情请点击这里

       任何js支持的类型都可以用json来表示
json字符串和js对象相互转换stringifyparse  

//    json字符串和js对象的转化
        var student = {
            name: "张三",
            age: 18,
            hight: 180
        }
        //对象转化为json字符串
        var jsonS = JSON.stringify(student);
        //字符串转换为对象
        var Student = JSON.parse('{"name": "张三", "age": 18, "hight": 180}');

注意:json里面是字符串

5.面向对象编程

5.1 class继承(和Java区别不大)

//定义一个学生类
        class Student{
            name;
            constructor(name) {
                this.name=name;
            }
        }
        var s = new Student("张三");
        //用extends继承
        class zhangsan extends Student{
            height;
            constructor(name,height) {
                super(name);
                this.height=height;
            }
        }
        var Z = new zhangsan("张三",180);

4.2闭包

4.3箭头函数

4.6原型链继承

6.操作Bom元素

     BOM:浏览器对象模型

window:代表浏览器窗口
       window.innerHeight();
       window.outerHeight();
localtion:代表当前页面的URL信息
      host: "www.baidu.com"
      href: "https://www.baidu.com/?tn=15007414_5_dg"
      protocol: "https:"
      reload: ƒ reload()//刷新网页
//设置新的地址:
       location.assign('网址名')
document:代表当前的页面
          获取具体的文档书节点:document.getElementByIdI('节点名')
         
获取本地信息:document.cookie
         
有一些病毒就是劫持cookie来窃取你的本地信息上传到他的服务器
          服务器端可以设置:cookie:httpOnly
history:代表浏览器的记录
          history.back();  history.forward();

7.操作Dom元素

    Dom:文档对象模型
浏览器网页就是一个Dom树形结构
获得Dom节点
             documment.getElementsByTagName('标签名');
                                 getElementsById('id名');
                                 getElementsByclassName('类名');
            father.children//获取父节点下的所有子节点,father可用上述三种发放获得

更新节点

<div id="123">
    <p>asfasf</p>
</div>

<script>
    var div1 = document.getElementById('123')//修改文本的值
    div1.innerText="用innerText改变值"
    div1.innerHTML='<strong>qwer</strong>'//解析HTML文本标签
    div1.style.color='red';
    div1.style.fontSize='100px';
</script>

删除节点:先获取父节点,再通过父节点删除自己的一回合

var self = document.getElementById('123');
var father = self.parentElement;
father.removeChild(self);
father.removeChild(father.children[0])//删除是一个动态的过程,第0个删除后,第一个会变为第0个

插入节点:( appendChild() )

<p id="s">student</p>
<div id="p">
    <p id="t">teacher</p>
    <p id="d">doctor</p>
</div>

<script>
    var c = document.getElementById("s");
    var lis = document.getElementById("p");
    lis.appendChild(c);
</script>

增加节点:(createElement)

var newp = document.createElement('p')//创建一个p标签
newp.id = '新标签'
newp.innerText='这是新标签'
lis.appendChild(newp)

8.操作表单

     1.获取表单的信息,可以通过id或class获得元素,再通过 .value 来获得该表单某个元素的值

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>
</head>
<body>

<form action="#" method="post" > <!--表单提交:onsubmit="return output()"-->
    <p>用户名:
        <input type="text" id="username" name="username">
    </p>
    <p>密码:
        <input type="password" id="pwd">
        <input type="hidden" id="md5-password" name="password">
    </p>
    <button type="submit" onclick="output()">提交</button>
</form>

<script>
    function output() {
        var Uname = document.getElementById('username')
        var pwd = document.getElementById('pwd')
        var md5pwd = document.getElementById('md5-password')
        console.log(Uname.value)
        //pwd.value = md5(pwd.value)//md5算法加密
        md5pwd.value = md5(pwd.value)//可以隐藏域名框里面的一长串字符串
        console.log(pwd.value)
    }
</script>


</body>

9.JQuery(要导入本地JQuery文件)

<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script src="lib/jquery-3.5.1.js"></script>

</head>
<body>

<a href="" id="test-JQuery">点击弹出</a>
<script>
    //公式:
    $('#test-JQuery').click(function () {
        alert('hello world');
    })

</script>

JQuery API速查表:点我跳转

显示鼠标坐标

<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script src="lib/jquery-3.5.1.js"></script>
    <style>
        #div1{
            width: 500px;
            height: 500px;
            border: 1px solid red;
        }
    </style>

</head>
<body>

mouselocal:<span id="p"></span>

<div id="div1">
    显示坐标
</div>
<script>
    //当网页元素加载完毕后开始响应事件
    $(function () {
        $('#div1').mousemove(function (e) {
            $('#p').text('x:'+e.pageX+'y:'+e.pageY)
        })
    });

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值