【无标题】

SJ

sj引入方式

body>

  <script src="./06-外部.js"></script>

    <script>

        document.write('你好,javascript')

        console.log('aaa')

    </script>

</body>

常用

document.write('我是js插入的语句')

        // 控制台输出语句

        console.log('你真6')

        // alert   警示框

        alert('警告,你小子立即退出')

        // 输入语句   输入框

        prompt('请输入您的年龄')

变量

    <script>

        // prompt('请输入您的用户名:')

        // 变量:存储数据的容器  盒子

        // 声明变量   let 变量名

        let uname

        // 变量赋值

        uname = 'gouxin'

        // 变量的初始化

        let age = 18

        console.log(age)

        // 改变变量

        uname = 'xianyanbao'

        console.log(uname)

      // 同时声明多个变量

        let a = 1, b = 2

        console.log(a, b)

var

    <script>

        // var a = 12

        // let b = 22

        // var  不存在块级作用域        可以先使用,后声明          多次声明同一变量

        // console.log(uname)

        // var uname = 'gouxin'

        // var uname = 'zs'

        // console.log(uname)

        // let uname = 'gouxin'

        // let uname = 'zs'

    </script>

常量

<body>

    <script>

        // 常量:存储的数据不能再变化   const  常量名

        const GENDER = 'nv'

        // GENDER = '男'

        console.log(GENDER)

    </script>

</body>

基本数据类型-字符串

body>

    <script>

        // 对于javascript弱数据类型语言,只有进行赋值了,才知道是什么数据类型

        // 字符串string类型   '  '             " "        

        let a

        a = 'nihao'

        // typeof  检测数据类型的方法

        console.log(typeof (a))

        let b = "欢迎你加入js "

        console.log(typeof (b))

        let c = "你是一本参不透的'书'"

        // 字符串的拼接  +

        let uname = 'zs'

        let age = 21

        document.write('姓名是:{uname}' + uname + '年龄是:' + age)

    </script>

</body>

模板字符串

body>

    <script>

        let uname = prompt('请输入用户名:')

        let password = prompt('请输入密码:')

        document.write(`<h1>用户名是:${uname},密码是:${password}</h1>`)

        let a = `gouxin`

        console.log(typeof (a))

    </script>

</body>

其他类型

<body>

    <script>

        let num = 1

        // 布尔类型   true   false

        console.log(2 > 3)

        // undefined   未定义

        console.log(uname)

        var uname = 'zs'

        // null    空的

        // NAN   not a number  

        console.log(undefined + 1)   //nan

        console.log(null + 1)

    </script>

</body>

数据类型转换

body>

    <script>

        // 隐式转换

        // let a = 2

        // let b = '3'

        // console.log(a + b)

        // 显式转换    Number(str)      +

        // let num1 = Number(prompt('请输入数字1:'))

        // let num2 = Number(prompt('请输入数字2:'))

     // let num1 = +prompt('请输入数字1:')

        // let num2 = +prompt('请输入数字2:')

        // console.log(num1 + num2)

       // parseInt          parseFloat   尽可能将字符串转换为数字类型

        let c = 3.1415826

        let d = '200.22px'

        console.log(parseInt(d))

        console.log(parseFloat(d))

    </script>

</body>

运算符

<body>

 <script>

        let a = 3

        let b = 5

        // +  -  *   /    %    

        console.log(a + b)

        console.log(b - a)

        console.log(b * a)

        console.log(b / a)

        // %   取余

        console.log(b % a)

        a += 3       //a = a + 3

        console.log(a)

        a -= 3    //a = a - 3

        a *= 3

        a /= 3

        // 赋值运算符的优先级高于后减减,因此,先赋值,后运算

        // let c = b--

        // 自增  自减

       // 前减减的优先级大于赋值运算符,因此,先减减,再赋值

        let c = --b

        console.log(c)

       let d = c++

        console.log(d)

        console.log(c)  //5

        let f = ++c

        console.log(f)

    </script>

</body>

比较运算符

<body>

    <script>

        // let a = 4

        // let b = 5

        // console.log(a > b)

        // console.log(a >= b)

        // console.log(a < b)

        // console.log(a <= b)

        // console.log(a = b)   =   赋值运算符

        console.log(3 == '3')   // == :等于    只判断值   有隐式转换,把字符串转换为数字类型

        console.log(3 === '3')  //===:全等      判断值、数字类型是否都一致

    </script>

</body>

 <script>

        // &&  :两真才真,一假则假

        console.log(3 > 2 && 2 > 4)

        // 或   ||  :  一真则真,两假才假

        console.log(3 > 2 || 2 > 4)

     // 非    !  取反

        console.log(!(3 > 2))

    </script>

</body>

单分支语句

<body>

    <script>

        let age = +prompt('请输入你的年龄:')

        // if(判断条件){

        //     执行代码块

        // }

        if (age > 18) {

            alert('欢迎光临,你成年了~')

        }

    </script>

</body>

双分支语句

body>

    <script>

        let age = +prompt('请输入您的年龄')

        // if (条件语句1) {

        //     执行代码块1

        // } else {

        //     执行代码块2

        // }

        if (age > 18) {

            alert('你成年了思密达~')

        }

        else {

            alert('小屁孩,边儿去~')

        }

    </script>

</body>

多分支语句

<body>

    <script>

        let score = +prompt('请输入你的成绩:')

        // if (条件1) {

        //     代码块1

        // }

        // else if (条件2) {

        //     代码块2

        // }

        // else if (条件三) {

        //     代码块3

        // } else {

        // }

        if (score <= 60) {

            alert('脑子呢??')

        } else if (score <= 80) {

            alert('还不错,继续努力就及格了')

        }

        else if (score <= 120) {

            alert('再接再厉,牛的')

        } else {

            alert('你已经是大神了,慕白你')

        }

    </script>

</body>

三元运算符

body>

    <script>

        //   判断条件   ?    成立时执行的代码   :   不成立时执行的代码

        // 三元运算符    双分支的简写

        // if (3 > 5) {

        //     alert('这个世界疯了')

        // } else {

        //     alert('你是不是个der')

        // }

        3 < 5 ? alert('这个世界疯了') : alert('你是不是个der')

    </script>

</body>

switch语句

body>

    <script>

        let week = prompt('请输入今天星期几了')

        switch (week) {

            case "1":

                alert('今天星期一,猴子穿大衣~')

                break

            case "2":

                alert('今天星期二,猴子有点二')

                break

            case "3":

                alert("今天星期三,猴子去爬山")

                break

            case "4":

                alert("今天星期四,猴子要找事")

                break

            case "5":

                alert("今天星期五,猴子打老虎")

                break

            case "6":

            case "7":

                alert("今天周末,休假")

                break

            default://无符合条件时,执行的代码

                alert("你是猴子派来的救兵吧~~~")

                break

        }

    </script>

</body>

for循环

<body>

    <script>

        // console.log('我爱你')

        // console.log('我爱你')

        // console.log('我爱你')

        // console.log('我爱你')

        // console.log('我爱你')

        // console.log('我爱你')

        // console.log('我爱你')

        // console.log('我爱你')

        for (let i = 0; i < 100; i++) {

            console.log('我爱你')

        }

    </script>

</body>

while循环

<body>

    <script>

        let i = 1

        while (i <= 10) {

            console.log(i)

            i++

        }

        while (true) {

            let n = prompt('你爱我吗?')

           if (n === "爱") {

               break

           }

         }

        alert(true === 1)

    </script>

</body>

do.....while循环

<body>

    <script>

        // let i = 11

        // while (i <= 10) {

        //     console.log(i)

        //     i++

        // }

        let j = 11

        do {

            console.log(j)

            j++

        } while (j <= 10)

    </script>

</body>

循环嵌套

<body>

    <script>

        for (let i = 1; i < 8; i++) {

            console.log(`今天是第${i}天`);

            for (let j = 1; j <= 10; j++) {

                console.log(`这是我送的第${j}朵花`)

            }

        }

        for (let i = 1; i <= 5; i++) {

            for (let j = 1; j <= i; j++) {

                document.write(`<span>*</span>`)

            }

            document.write(`<br/>`)

        }

    </script>

</body>

数组

<body>

    <script>

        //存储多个数据的容器-数组

        // 声明方式:   []   数组存在数组下标,从0开始

        let arr = ['gouxin', 'liuxingyun', 'xainyanbao', 'wangwu']

        console.log(arr)

        // 查找     数组名[数组下标]

        console.log(arr[1])

    </script>

</body>

循环加强

<body>

    <script>

        // for in               for of

        let arr = [1, 2, 3, 4, 5, 6, 7, 'gouxin', true]

        // for (let i in arr) {

        //     // console.log(i)

        //     console.log(arr[i])

        // }

        for (let k of arr) {

            console.log(k)

        }

    </script>

</body>

数组

<body>

    <script>

        let arr = ['gouxin', 'zs', 'ls', 'wmz', 1, 2, 3]

        arr[1] = '显眼包'

        console.log(arr[1])

        // let arr2 = new Array()

        // 常用的数组操作

        // push()    向数组末尾添加一个或多个元素的

        // arr.push(100, 22, 33, 'gouxinsimida')

        // console.log(arr)

        // unshift()

        arr.unshift(101, 102, 110, 120)

        console.log(arr)

        // pop()删除并返回数组的最后一个元素

        let b = arr.pop()

        console.log(arr)

        console.log(b)

        // shift()删除并返回数组的第一个元素

        let c = arr.shift()

        console.log(arr)

        console.log(c)

        //  [102, 110, 120, 'gouxin', '显眼包', 'ls', 'wmz', 1, 2]

        // splice()  删除元素  两个参数的时候,第一个参数代表要删除的元素的位置,第二个参数代表要删除几个

        arr.splice(2, 3)

        console.log(arr)  //[102, 110, 'ls', 'wmz', 1, 2]

        // splice()添加元素:第二个参数为0

        arr.splice(2, 0, 'gouxin', 'lixi', 1, 2, 3)

        console.log(arr)

        // concat()   连接两个或者多个数组的,并返回结果

        let arr1 = ['10086', '10010']

        let arr2 = ['1314', '4488']

        let arr3 = arr1.concat(arr2)

        console.log(arr3)

        console.log(arr1)

        // join()    把数组中所有的元素放在一个字符串里边,元素通过指定的分隔符进行拼接

        let str = arr1.join('#')

        // console.log(typeof (str))

        console.log(str)

        // reverse()  颠倒数组中元素的顺序  原来的数组改变

        let newArr = [22, 3, 12, 44, 33, 123]

        let n = newArr.reverse()

        console.log(n)

        console.log(newArr)//[123, 33, 44, 12, 3, 22]

    // sort()对数组的元素进行排序   按照utf码进行排序

        let f = newArr.sort()

        console.log(f)

        console.log(newArr.length)

        for (let i = 0; i < newArr.length; i++) {

            console.log(arr[i])

        }

  </script>

</body>

函数

<body>

    <script>

        //  函数:完成特定功能的代码块            精简代码、提高复用率

        // alert()

        // console.log()

        // parseInt()

        // getSum(2, 3)

        // 函数的声明方式  function   函数名(){代码块}

        function sayHi() {

            console.log('你好,function')

        }

        // 函数声明完成后,必须进行调用才能执行

        // 调用     函数名()

        sayHi()

    </script>

</body>

函数传参

<body>

    <script>

        // 函数小括号里用于接受实参的叫做形参

        function sayHi(msg) {

            console.log(`用户说:${msg}`)

        }

        // 函数调用时,传进去的参数,叫做实参

        sayHi('今天天气真好,狂风暴雨')

        // 求和函数

        function getSum(a, b) {

            console.log(a + b)

        }

        getSum(2, 3)

    </script>

</body>

函数返回值

body>

    <script>

        let arr = [11, 22, 12, 33, 4, 34]

        function getSum(arr) {

            let sum = 0

            for (let i = 0; i < arr.length; i++) {

                sum += arr[i]

            }

            // console.log(sum)

            // 返回值:return  

            return sum

            // console.log('111')

   }

       // 函数没有返回值,默认返回undefined          return  结束函数的作用,之后的代码不会再执行

        let a = getSum(arr)

        document.write(a)

    </script>

</body>

值传递和引用传递

<body>

    <script>

        // 将自身的值传进函数

        let a = 11

        let b = 22

        function change(x, y) {

            x = 21

            y = 33

        }

        change(a, b)

        console.log(a, b)

        // 数组:引用数据类型,将自己的地址传递给函数

        let arr = [1, 2, 3, 4, 5]

        function change2(arr) {

            arr.push(100)

        }

        change2(arr)

        console.log(arr

    </script>

</body>

默认值参数

<body>

    <script>

        // 默认值参数:在形参的最后

        function area(r, PI = 3.14) {

            return PI * r * r

        }

        let a = area(2)

        console.log(a)

    </script>

</body>

匿名函数

body>

    <script>

        //具名函数     匿名函数:没有名字的函数

        // say()

        // function say() {

        //     console.log('good')

        // }

        // 1、函数表达式

        // let fn = function () { console.log("你好") }

        // fn()

        // 普通的具名函数,可以在声明前去使用,而函数表达式,只能先声明,后使用

        // 2、立即执行函数

        //  let num=1

        //  let num=2

        // (function () {

        //     let num = 1

        //     console.log(num)

        // }())

        (function () {

            console.log('121212')

        })()

    </script>

</body>

作用域

<body>

    <script>

        let a = 1

        for (let i = 0; i < 9; i++) {

            console.log(i)

        }

        for (let i = 7; i < 10; i++) {

            console.log(i)

        }

        // console.log(i)

        //作用域:一段代码中所用到的名字不是一直有效且可用的,而限制这个名字可用范围的就是这个名字的作用域

        // 减少名字冲突   不同作用域之间相互不影响

        // 全局作用域             局部作用域 :函数内部声明的变量

        // script里边,函数外边声明的变量  

        //全局变量 :script里边,函数外边声明的变量       局部变量:函数内声明的变量(外部不能访问)

        // 函数的形参也可以理解为局部变量

        function say() {

            let num = 33

            console.log(a)

        }

        say()

        console.log(num)

    </script>

</body>

递归

<body>

    <script>

        // 递归:把一个问题,尽可能的拆分成小问题,知道不能拆分

       // 9!

        // 9*8!

        // 9*8*7!

        // 9*8*7*6*5*4*3*2*1!

        function jiecheng(n) {

            if (n === 1) {

                return 1

            }

            return n * jiecheng(n - 1)

        }

        let a = jiecheng(9)

        console.log(a)

    </script>

</body>

闭包

<body>

    <script>

        function outer() {

            let money = 100

            function inner() {

                console.log(money)

            }

            return inner

        }

        let a = outer()

        a()

        console.log(money)

    </script>

</body>

对象

body>

    <script>

        //

        // let arr = [190, 184, 19]

        // 对象:无序的数据集合(无下标)

        let obj = {

            uname: 'gouxin',

            age: 21,

            gender: 'nv',

            sing: function () {

                console.log('我要唱歌了,请保护你的耳朵')

            }

        }

        // 声明方法:   let  对象名={}                          let 对象名=new  Object()

        // 对象:属性和方法      属性:信息或者特征        方法:行为或者动作   打电话、玩游戏……

        // 查:对象名.属性名

        console.log(obj.age)

        console.log(obj.uname)

        // 查找2.0  对象名['属性名']

        console.log(obj['gender'])

        // 增   对象.新属性=属性值

        obj.like = '王者荣耀'

        // 改

        obj.uname = 'zs'

        // 删

        delete obj.gender

        console.log(obj)

        // 对象方法怎末去调用   对象名.方法名()

        obj.sing()

    </script>

</body>

对象遍历

<body>

    <script>

        let obj = {

            uname: 'gouxin',

            age: 21,

            gender: 'nv',

            sing: function () {

                console.log('我要唱歌了,请保护你的耳朵')

            }

        }

        for (let k in obj) {

            // console.log(typeof (k))

            console.log(obj[k])

  }

    </script>

</body>

Math模块

<body>

    <script>

        console.dir(Math)

        // console.log(Math)

        console.log(Math.E)

        console.log(Math.PI)

        // ceil()向上取整

        console.log(Math.ceil(3.1415))

        // floor()向下取整

        console.log(Math.floor(3.1415))

        // abs取绝对值

        console.log(Math.abs(-3.1415))

        // pow

        console.log(Math.pow(2, 3))

        console.log(Math.random())  //[0,1)之间的随机数

        let arr = ['zs', 'ls', 'ww', 'gouxin', 'heidashuai']

        let random = Math.floor(Math.random() * 5)

        document.write(arr[random])

    </script>

</body>

时间模块

<body>

    <script>

        // new关键字,就是在实例化

        // console.log(date)

        let date = new Date()

        console.dir(date)

        function getTime() {

            let y = date.getFullYear()

            let m = date.getMonth() + 1

            let d = date.getDate(

            let hh = date.getHours()

            let mm = date.getMinutes()

            let ss = date.getSeconds()

            let week = date.getDay()

            // 补零:

            m = m < 10 ? '0' + m : m

            d = d < 10 ? '0' + d : d

            hh = hh < 10 ? '0' + hh : hh

            mm = mm < 10 ? '0' + mm : mm

            ss = ss < 10 ? '0' + ss : ss

            return `${y}年-${m}月-${d}日 ${hh}:${mm}:${ss} 星期${week}`

        }

        let a = getTime()

        console.log(a)

    </script>

</body>

字符串对象

body>

    <script>

        let str = new String()

        str = 'nihao,huanyingjiaru web'

        console.log(typeof (str))

        // length   属性

        console.log(str.length)

        // split()将字符串分隔为数组并返回

        let a = str.split('a')

        console.log(a)

        // endsWith       startsWith

        str.startsWith('nihao')

        console.log(str.startsWith('dcnd'))

        // indexOf   字符串中是否包含某字符

        str.indexOf('gouxin')

        console.log(str.indexOf('gouxin'))

       // match   匹配字符串,支持正则

        let c = str.match(/a/g)

        console.log(c)

        // replace  查找、替换,支持正则匹配

        let f = str.replace('huanying', 'jujueni')

        console.log(f)

    </script>

</body>

构造函数

<body>

    <script>

        // let str=new String()

        // let obj = {

        //     uname: 'linjunjie',

        //     age: 31,

        //     sing: function () {

        //         console.log('我要唱歌了')

        //     }

        // }

        // let obj2 = {

        //     uname: 'zhnagjei',

        //     age: 33,

        //     sing: function () {

        //         console.log('我要唱歌了')

        //     }

        // }

        // 构造函数的基本格式     一个模板

        function Obj(uname, age) {

            this.uname = uname,

                this.age = age,

                this.sing = function () {

                    console.log('我要唱歌了')

                }

        }

        // 实例化对象

        let str = ''

        // let str = new String()

        // let arr = new Array()

        let obj1 = new Obj('zhangjie', 21)

        console.log(obj1)

        obj1.sing = function () {

            console.log('sing')

        }

        obj1.sing()

       let obj2 = new Obj('linjunjie', 33)

        console.log(obj2)

        obj2.sing()

    </script>

</body>

x

原型对象

body>

    <script>

        function Obj(uname, age) {

            this.uname = uname,

                this.age = age

        }

        // Obj.prototype.sing = function () {

        //     console.log('我要唱歌了')

       // }

        Obj.prototype = {

            // 原型对象中的constructor被覆盖丢失。重新指回去:constructor:Obj,

            constructor: Obj,

            sing: function () {

                console.log('我要唱歌了')

            },

            dance: function () {

                console.log('我要跳舞')

            }

        }

        console.dir(Obj)

        let obj1 = new Obj('zs', 18)

        obj1.sing()

        console.log(obj1.__proto__ === Obj.prototype)

        let obj2 = new Obj('ls', 22)

        obj2.sing()

        // 对象:都具有prototype的属性,即都有原型对象,而原型对象本身又是对象

        // javascript里:万物皆对象

        // let arr1=[]

        // let arr = new Array()

        // console.log(arr)

    </script>

</body>

获取元素

<body>

    <button></button>

    <ul>

        <li>1</li>

        <li>2</li>

        <li>3</li>

        <li>4</li>

        <li>5</li>

        <li>6</li>

    </ul>

    <div class="box">11111</div>

    <input type="text">

    <script>

        // 1、通过css选择器获取  document.querySelector只获取满足条件的第一个元素对象  (倾情推荐)

        // document.querySelector('css选择器')

        const btn = document.querySelector('button')

        // console.log(typeof (btn))

        console.dir(btn)

        const li = document.querySelector('ul li')

        console.log(li)

        // document.querySelectorAll将所有的满足条件的元素对象获取并保存至伪数组

        const lis = document.querySelectorAll('ul li')

        console.log(lis)

        // 2、class名

        let box = document.getElementsByClassName('box')

        console.log(box)

        // 3、标签名

        let input = document.getElementsByTagName('input')

        console.log(input)

        // 4、id

        // document.getElementById(''

   </script>

</body>

修改dom元素内容

<body>

    <div>我是一个盒子</div>

    <script>

        //  1、获取元素

        let div = document.querySelector('div')

        // 2、修改元素内容

        // 1、innerText()   无法识别标签

        div.innerText = `<h1>我被修改过</h1>`

       // 2、innerHtml()   可以识别标签   (热烈推荐)

        div.innerHTML = '<h1>我又又又被改了</h1>'

    </script>

</body>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值