js的笔记

js的引入方式

<body>

    <script>

        // 内部

    </script>

    <!-- 外部 -->

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

    </script>

</body>

输入输出语句

<script>

        // 输入语句

        prompt('请输入您的密码:')

        // 打印到页面

        document.write('你们真是小天才')

        // 可以识别标签

        document.write('<strong>你们真是小天才</strong>')

        // 控制台输出语句

        console.log('我现在要在控制台输出')

    </script>

变量

        // 变量:盒子----存储数据的容器           数据本身不是变量

        //  变量的声明:

        // let 变量名           var  变量名    不推荐!!!!

        // 变量赋值

        // age = prompt('请输入您的年龄:')

        // age = 33

        // console.log(age)

        // 变量的初始化

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

        // console.log(uname)

        // 同时定义多个变量

        // let uname = 'zs', age = 21

        // console.log(uname, age)

变量命名规范

// 变量命名规范:1、有效符号(大小写字母、数字、下划线、$)

        // 2、关键字、保留字不能用于变量命名

        // 3、不以数字开头

        // 4、尽量用有意义的变量名

        // 5、驼峰命名法       userName(从第二个单词开始单词的第一个字母大写)

常量

// 常量名大写   常量无法更改

        const PI = 3.14

数据类型

// js是弱数据类型语言    只有赋值之后,才知道是什么数据类型

        let uname = 21

        uname = 'gouxin'

        console.log(typeof (uname))

// console.log(typeof (uname))查看数据类型

字符串类型

写法:

                  let uname1 = 'nnnsns'

        console.log(typeof (uname1))

         let uname2 = "nnnsns"

        console.log(typeof (uname2))

        let uname3 = "nnn'gouxin'sns"

        console.log(typeof (uname3))

        let uname4 = 'nnn"gouxin"sns'

        console.log(typeof (uname4))

       // 字符串拼接用+

        let a = prompt("请输入num1")

        let b = prompt("请输入num2")

        // alert   警示框

        alert(a + b)

                  // 模板字符串

        let uname = prompt("请输入名字:")

        let age = prompt("请输入年龄:")

        document.write('你叫' + uname + ',今年' + age + '岁了')  //不推荐!!!!!

        document.write(`<strong>你叫${uname},今年${age}岁了</strong>`)

显示转化

// 将数据转换为数字类型

       let a = +prompt('num1')

        let b = +prompt('num2')

// 方法2

        console.log(Number(a) + Number(b))

        console.log(typeof (+a))

// 只引用数字不引用单位

        let c = '200.9875px'

        console.log(parseInt(c))

        console.log(parseFloat(c))

运算符

// =  赋值运算符

        // let a = 21

        // a += 4    a = a + 4

        // a *= 2   a = a * 2    

        //a -= 3    a = a - 3

        // a /= 2   a = a / 2             

// alert(a)

        // let b = a++  先赋值,再自增

        // alert(b)

        // alert(a)

        // b = ++a   先自增,再赋值

        // alert(b)

        // 比较运算符  

        // >   <   >=   <=  ==   ===

        let num1 = 2

        let num2 = '2'

        alert(num1 == num2)

        alert(num1 === num2)

        // ==  (隐式转换)只比较数值,将字符串转换为数字类型后进行比      ===   即比较数值,也比较类型

 

逻辑运算符

// && 与    ||或       !非

        //  alert(4 > 3 && 3 < 5)  //两真为真,有假则假

        // alert(4 < 3 || 3 < 5)  //一真则真   全假则假

        // alert(!true)

单分支语句

let age = 11

        // if(条件){

        //     执行的代码

        // }

        if (age < 18) {

            document.write('你是小弟弟,不要乱跑')

        }

双分支语句

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

        if (age <= 18) {

            alert('你不要乱跑')

        } else {

            alert('恭喜你,成年了')

        }

多分支语句

let age = +prompt('age')

        if (age < 18) {

            alert('你是未成年 学习吧')

        } else if (age <= 25) {

            alert('青春年华')

        } else if (age <= 40) {

            alert('好汉不提当年勇')

        } else {

            alert('男人四十一枝花')

        }

三元运算符

// 判断条件?条件成立时执行的语句:条件不成立时执行的语句

let a = +prompt('请输入num1')

        let b = +prompt('请输入num2')

        a > b ? alert(`最大值是:${a}`) : alert(`最大值是:${b}`)

数字补零

<script>

        // alert(2 < '3')

        let a = prompt('num')

        a >= 10 ? alert(a) : alert(0 + a)

    </script>

switch语句

let num = +prompt('请输入今天星期几了:')

        switch (num) {

            case 1:

                alert('星期一')

                break

            case 2:

                alert('星期二了')

                break

            case 3:

                alert('星期三了')

                break

            case 4:

                alert('星期四了')

                break

            case 5:

                alert('星期五了')

                break

            case 6:

                alert('周末了')

                break

            case 7:

                alert('周末了')

                break

            default:

                alert('你是外星人吗')

        }

while循环

// while   一定要有终止条件

        let i = 10

         while (i > 11) {

             console.log('你是大聪明')

             i--

         }

// do while   先循环一次,在判断条件

        do {

            console.log('你是大聪明')

            i--

        } while (i > 11)

for循环

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

            document.write(`你真是个大聪明<br>`)

        }

循环嵌套

    九九乘法表:

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

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

                document.write(`<span>${j}*${i}=${i * j}</span>`);

            }

            document.write(`<br/>`)

        }

break和continue

         // break:跳出循环

        // continue:跳出本次循环

循环加强

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

        // for  in

       // i代表数组下标

         for (let i in arr) {

             console.log(arr[i])

         }

        // for   of

        // k代表内容

        for (let k of arr) {

            console.log(k)

        }

数组

// 有序的数据序列

        //             0         1         2           3       4     5

        let arr = ['gouxin', 'huangzhong', 'jialuo', 'zhadanren', 12, true]

        // 数组的声明方式

        // arr[索引下标]

        alert(arr[5])

        // 数组遍历

         for (let i in arr) {

             console.log(arr[i])

         }

        // 数组的操作  

        // 通过索引下标给对应元素重新赋值

        arr[1] = 'guanyu'

        console.log(arr instanceof Array)

        let arr2 = [1, 2, 3, 4]

        // concat合并数组

        arr3 = arr.concat(arr2)

        console.log(arr3)

        // push   在数组末尾添加

        arr.push('姜加')

        // unshift  在数组首部添加元素

        arr.unshift('jiangjia')

        //    在数组末尾删除元素

        arr.shift()

        //   在数组首部删除元素

        arr.pop()

        // splice(删除的起始位置,删除的个数)

        arr.splice(3, 1)

        // splice(删除的起始位置,0,要添加的元素)

        arr.splice(3, 0, 'jiangjia')

        console.log(arr)

二维数组

let student = [['jiangjia', 31, 'sing'], ['xuchao', 21, 'dance']]

        console.log(student[1][0])

       // 遍历

        for (let i in student) {

            for (let j in student[i]) {

                console.log(student[i][j])

            }

        }

        // student.length   获取数组长度的

函数

function 函数名( ) {

            语句

        }

function sayHi() {

            console.log('hello,function!')

        }

        // 函数必须进行调用,才会执行

        sayHi()

// 函数要有返回值,一定要添加return关键字,否则返回值为undefined

        function getSum() {

            // console.log(a + b)

            // return a + b

            // arguments  接收所有实参,并保存到arguements数组里

            console.log(arguments)

            let sum = 0

            console.log(age)

            for (let i in arguments) {

                sum += arguments[i]

            }

            return sum

        }

        let e = getSum(3, 4, 3, 4, 65, 7, 44, 5, 6, 7, 5)

        console.log(e)

匿名函数

function () {

             console.log('jiangjia')

         }

setInterval(function () {

            console.log('你真傻')

        }, 1000)

函数表达式

let a = function getSum() {

             console.log('jiangjia')

         }

         a()

立即执行函数

(function () { console.log('liqingyu') })()

        //    (function () { console.log('jiangjia') }())      不推荐!!!

值传递

let a = 10

        let b = 20

        function change(x, y) {

            x = 30;

            y = 50;

        }

        change(a, b);

        alert(a + "--" + b)

引用传递

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

        // 引用传递    传地址,发生改变

        function change2(a) {

            a.push(1000)

        }

        change2(arr)

        alert(arr)

默认值函数

在最后大写

function getCir(r, PI = 3.14) {

            return PI * r * r

        }

        let a = getCir(3)

        console.log(a)

箭头函数

setInterval(function () {

             console.log('i love you')

         }, 1000)

 

 

箭头函数写法:

        setInterval(() => {

            console.log('i hate you')

        }, 1000)

递归

求n的阶乘

function jiecheng(n) {

            if (n === 1) {

                return 1

            } else {

                return n * jiecheng(n - 1)

            }

        }

        let a = jiecheng(9)

        alert(a)

数组遍历

let arr = ['a', 2, 3, 4, 5, 6]

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

            console.log(arr[i])

        }

求数组长度:arr.length

 

字符串的常见方法

let str = new String()

        let str = '你是who'

        // 折掉

        console.log(str.split('w'))

        // 折留

        console.log(str.substring(2, 4))

        // 以什么开头

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

        console.log(str.endsWith(''))

        // 有包含什么没有

        console.log(str.includes('w'))

对象

// 对象:无序的数据集合

        let obj = {

            uname: 'zhangfei',

            age: 21,

            gender: 'nan'

        }

        console.log(obj)

// 查找对象元素

        console.log(obj.uname)

        console.log(obj['age'])

// 改:对象.属性名

        obj.uname = 'GGBond'

// 增加  对象.新属性名

        obj.sing = function () {

            console.log('sing~')

        }

 // 删除 对象.属性名

        delete obj.gender

        console.log(obj)

对象遍历

let obj = {

            uname: 'zhangfei',

            age: 21,

            gender: 'nan'

        }

        for (let k in obj) {

            console.log(k)

            console.log(obj[k])

        }

数组对象

let arrObj =

            [

                {

                    uname: 'zs',

                    age: 21

                },

                {

                    uname: 'jiangjia',

                    age: 33

                },

                {

                    uname: 'lisi',

                    age: 12

                }

            ]

        console.log(arrObj)

        // arrObj[1]['uname'] 数组对象遍历

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

            for (let k in arrObj[i]) {

                console.log(arrObj[i][k])

            }

        }

Math内置对象

// Math.ceil向上取整

        console.log(Math.ceil(3.1415))

        // Math.floor向下取整

        console.log(Math.floor(3.1415))

        // Math.abs   绝对值

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

        // pow 求幂次方

        console.log(Math.pow(3.12, 10))

        // 开平方根

        console.log(Math.sqrt(9))

        // 随机数  左闭右开  默认0-1

        // 0-10的整数

        console.log(Math.floor(Math.random() * 11))

        // m-n的整数

        let random = Math.floor(Math.random() * (m - n + 1)) + n

        console.log(random)

日期内置对象

// 获取时间

        let date = new Date()

        alert(date)

        // 获取年

        let year = date.getFullYear()

        // 获取月

        let month = date.getMonth() + 1

        // 获取日

        let day = date.getDate()

        // 获取时

        let hh = date.getHours()

        // 获取分

        let mm = date.getMinutes()

        // 获取秒

        let ss = date.getSeconds()

        document.write(`${year}-${month}-${day}${hh}:${mm}:${ss}`)

        // 获取星期

        let gg = date.getDay()

        alert(gg)

 

获取元素的方法

// 1、通过css选择器获取             ('字符串')    :狂(嘎嘎)推荐

        const li2 = document.querySelector('.two')

        console.log(li2)

        const li = document.querySelector('li')

        console.log(li)

        // document.querySelectorAll将所有匹配的元素全部获取到,并存放到伪数组

        const lis = document.querySelectorAll('li')

        console.log(lis)

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

            console.log(lis[i])

        }

        const li3 = document.querySelector('ul li:nth-child(3)')

        console.log(li3)

        // 其他

        console.log(document.getElementsByTagName('div'))

        console.log(document.getElementById('four'))

        console.log(document.getElementsByClassName('two'))

 

修改元素的内容

// 1、获取元素

        const box1 = document.querySelector('.one')

        const box2 = document.querySelector('.two')

        console.log(box1)

        console.log(box2)

        // 2、操作

        box1.innerText = `<h1>jiangjia</h1>`

        box2.innerHTML = `<h1>chensongjie</h1>`

修改元素属性

<input type="text" placeholder="wedjed" readonly>

// 1、获取元素

        const ipt = document.querySelector('input')

        // 改元素属性   对象.属性=

        ipt.type = "password"

        ipt.placeholder = "请输入用户名"

        ipt.readOnly = false

修改元素样式

<style>

        .box1 {

            width: 300px;

            height: 300px;

            background-color: rgb(207, 39, 67);

            font-size: 50px;

        }

    </style>

<script>

        // 1、获取元素

        const box2 = document.querySelector('.box2')

        const div = document.querySelector('.box1')

        // 2、通过style修改样式

        div.style.width = '500px'

        div.style.fontSize = '16px'

        div.style.backgroundColor = 'pink'

        // 3、通过添加类名 calssName会将原来的类名删除掉,不建议使用

        // box2.className = 'box1'

        // classlist.add'类名')追加

        box2.classList.add('box1')

        // box2.classList.remove('box1')    移除

        box2.classList.toggle('box1')        //切换:有则删除,没有则添加

    </script>

定时器

<script>

        // setTimeout\setInterval   两种定时器

        // setTimeout  :某段代码或者函数在多久后执行

        // setTimeout(code||function,time(ms))

        // 返回值是一个整数,代表定时器编码

        let timer = setTimeout('console.log("我是一秒之后执行的代码")', 1000)

        console.log(timer)

        let timer2 = setTimeout('console.log("我是4秒之后执行的代码")', 4000)

        console.log(timer2)

        //    传的是函数名

        let timer3 = setTimeout(

        fn, 3000)

        function fn() {

        console.log('6666666')

         }

        // setTimeout(函数或一段代码,延迟时间,实参……)

        let timer4 = setTimeout(function (a, b) {

        console.log(a + b)

         }, 2000, 1, 4)

        let obj = {

            uname: 'gouxin',

            a: 3,

            b: 4,

            sum: function () {

                console.log(this)

                console.log(this.a)

            }

        }

        obj.sum()

         setTimeout(obj.sum, 1000)

        // 定时器的第一个参数如果是对象方法,this不再指向对象,指向全局环境

         setTimeout(function () { obj.sum() }, 1000)

        let a = setTimeout(obj.sum.bind(obj), 1000)

        clearTimeout(a)

        // setInterval  间隔一段时间,将代码或者函数执行一次

        let timer = setInterval(' console.log(\'6666666\')', 1000)

        clearInterval(timer)

        let timer2 = setInterval(function (a, b) {

            console.log(a + b)

        }, 1000, 2, 3)

        clearInterval(timer2)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值