JavaScript笔记(一)

一、变量与数据类型

1.var声明变量

声明多个变量用逗号分开,

 var s1="hello world!",s2="hhh"

        console.log(s1)

        console.log(s2)

2.变量命名

变量名要见名知意,可以由字母、下划线、$组成,但不能是数字开头

以小写字母开头,多个单词时第二个开始首字母大写(驼峰命名)

不可以与关键字、保留字重复

3.数据类型

数值(Number):100,1,4

字符串(String):”Hello”

布尔(Boolean):true,false

未定义(Undefined):undefined,定义了变量但没赋值,该变量的值默认为undefined

空(Null):null

对象(Object):{}

当不知道变量为多少时,一般进行以下赋值:

var str=””;

var n=0;

var student=null;

二、表达式与运算符

1.字面量:有固定值的数据

表达式:通过运算符将变量、字面量组合起来的式子

返回值:表达式的结果

2.比较运算符(返回值为布尔类型)

==等于(不比较数据类型,只比较值)

===恒等于(数据类型与值都比较)

!=不等于

!==非恒等于

20==”20”为真

20===”20”为假

逻辑与&&

逻辑或||

逻辑非!

3.条件运算符

表达式 ? value1 : value2

若表达式为真,返回value1,反之,返回value2

三、函数基础

函数是一个可执行的语句块,通过关键字function声明,只有在调用函数时才执行函数

声明函数:

function fun(){

语句

}

调用函数

fun();

形参:声明函数时定义

实参:调用函数时传递实参

function fun(x,y){

            var result=3*x+4*y;

            console.log(result);

        }

        fun(5,6);

四、对象

1.定义对象

var 对象名={

属性1:属性值1,

属性2:属性值2,

......,

属性n:属性值n

}

2.获取对象的属性值

对象名.属性

对象名[“属性”]

var cat={

            name:"猫",

            age:2

        }

        console.log(cat.name);

3.方法

(1)定义

对象的属性的值是函数,则称为方法

var cat={

            name:"猫",

            age:2,

            sayName:function(){

                console.log("我是"+this.name)

            },

            eat:function(food){

                console.log("我吃"+food)

            },

            computed:function(n,m){

                return n+m;

            }

        }

        cat.sayName();

        cat.eat("鱼");

        var result=cat.computed(1,2);

        console.log(result)

(2)常用方法

1)map

下文遍历数组会用到

2)push

直接在数组后追加元素(会改变数组本身)

数组名.push(元素1,元素2,..)

3)sort

将数组元素按从小到大排序(会改变数组本身元素的排序)

数组名.sotrt()

4)filter

过滤器,可以将符合条件的元素过滤出来(不改变数组本身)

eg.将大于等于3的元素过滤出来保存到新数组

var newList=list.filter(function(item){

    if(item>=3){

        return item;

    }

})

console.log(newList)

5)join

连接数组,并把数组变成字符串,此外,可以填写参数,表示字符之间的连接符号

var list=[3,2,7,"a","b"];

var str=list.join();

console.log(list)

console.log(str)

结果为:

[3, 2, 7, 'a', 'b']

3,2,7,a,b

若给join添加空字符串的参数,表示字符之间没有连接

var str=list.join("");

此时,结果为:

[3, 2, 7, 'a', 'b']

327ab

若参数为+号,

var str=list.join("+");

结果为:

[3, 2, 7, 'a', 'b']

3+2+7+a+b

6)splite

将字符串变成数组,若添加参数,会将参数视为连接符,按照连接符将字符拆分成元素

eg1.

var str="banana"

var list=str.split();

console.log(list)

不添加参数:

结果为:['banana']

添加参数空字符

var list=str.split("");

结果为:['b', 'a', 'n', 'a', 'n', 'a']

添加参数n

var list=str.split("n");

结果为:['ba', 'a', 'a']

eg2.将年月日拆分

var str="2023-10-1"

var list=str.split("-");

console.log(list)

结果为:['2023', '10', '1']

7)setInterval

计时器方法,在控制台输出当前时间,每秒输出一次

setInterval(function(){},ms);

ms表示间隔多少毫秒输出一次

eg1.从0开始输出

 var n=0;

        setInterval(function(){

            console.log(n++)

        },1000)

eg1.设置计时器,每秒输出当前时间

 setInterval(function(){

            var d=new Date();

            var hours=d.getHours();

            var minutes=d.getMinutes();

            var seconds=d.getSeconds();

            console.log(hours+":"+minutes+":"+seconds)

        },1000)

4.分类

(1)自定义对象

用var定义,封装的作用

(2)内置对象

1)定义

JavaScript语言提供了一些对象,让开发人员可以使用一些现成的功能

2)常见内置对象
①Array-数组
②Math-数学

Math.floor():向下取整(向小的数取整,如3.14取3,-3.14取-4)

 console.log(Math.floor(-3.14))//结果为-4

Math.random():0-1的随机数

获取1-10的随机整数:

Math.floor(Math.random()*10+1)

获取0-7的随机整数:

Math.floor(Math.random()*7)

eg.随机选择一个数组元素输出

var list=["abandon","bring","copy","delete",1,5,9,0,"¥"]

        var index=Math.floor(Math.random()*list.length)

        console.log(list[index])

Math.abs():绝对值

Math.sqrt(n):开根号

Math.pow(m,n):m的n次方,m^n

③Date-日期

var d=new Date();不写参数,表示当前时间

var d_target=new Date(“2020-1-1”)

d.getFullYear();获取年份

d.getMonth();从0开始

d.getDate();

d.getDay();获取星期

d.getHours();

d.getMinutes();

d.getSeconds();

d.getTime();获取时间戳

时间戳是指格林威治时间1970年 1月1日0时0分0秒起到现在的总毫秒数

④RegExp-正则表达式

可以用来匹配字符串,实现字符串的截取或按规则替换和验证字符串内容

Ⅰ创建正则表达式对象

var 对象名=new RegExp(“值”)

var 对象名=/值/

Ⅱ语法

^开头

$:结尾

[]:范围

{}:位数

():分组

+:匹配1位或多位,同{1,}

?:0位或1位,同{0,1}

.:匹配所有

\:转义

\d:数字,同[0-9]

\w:数字、字母、下划线

\s:空格或换行

Ⅲ方法

方法一:test();

检测是否匹配成功,成功返回true,反之false

eg1.用户是否输入小写字母,[]表示范围

var str="f";

        var reg=/[a-z]/;//表示一位小写字母

        var result=reg.test(str);

        console.log(result);

该代码表示检验是否有小写字母,只要str中有小写字母,返回true,没有,则返回false,该例子结结果为true

方法二:exec()

返回值是匹配的内容

var result=reg.exec(str);

结果为f,

若将str改为111gf,结果为g,因为reg只设定了一位

eg2.判断输入是否只有一位,且为小写字母(^表示开头,$表示结尾)

var reg=/^[a-z]$/;//表示只输入一位小写字母

var result=reg.exec(str);

若str不为一位,且为小写字母,则返回null

r若为一位小写字母,则返回该小写字母

eg3.只匹配两位小写字母

var reg=/^[a-z]{2}$/;

eg4.只匹配5位到8位小写字母

var reg=/^[a-z]{5,8}$/;

eg5.匹配5-8位小写字母和数字(只要至少有一种就匹配成功)

var reg=/^[a-z0-9]{5,8}$/;

eg6.匹配5-8位大小写字母和数字(只要至少有一种就匹配成功)

var reg=/^[a-z0-9A-Z]{5,8}$/;

eg7.匹配5-8位大小写字母和数字还有下划线(只要至少有一种就匹配成功)

var reg=/^[a-z0-9A-Z_]{5,8}$/;

var reg=/^\w{5,8}$/;

eg8.匹配一位或多位数字

var reg=/^[0-9]{1,}$/;

var reg=/^[0-9]+$/;

var reg=/^\d+$/;

eg9.匹配一位或多位空格或换行

var reg=/^\s+$/;

eg10.匹配0位或1位数字

var reg=/^\d?$/;

eg11.匹配所有内容

var reg=/^.+$/;

eg12.匹配是否为”1+”(用转义字符)

var reg=/^1\+$/;

eg13.匹配163.com邮箱(@前面是用户的用户名,@后面为163.com)

var reg=/^\w{5,12}@163\.com$/;

        if(reg.test(str)){

            console.log("验证通过")

        }

        else{

            console.log("验证失败")

        }

        var result=reg.test(str);

        console.log(result);

eg14.去掉字符串里的字母

var str="123ahshfv"

        var reg=/[a-zA-Z]/g//g表示全局匹配

        var result=str.replace(reg,"")

        console.log(result)

将字符串里的字母全部换成9

        var result=str.replace(reg,"9")

eg15.截取字符串

var str="2023-10-02";

        var reg=/^(\d{4})-(\d{2})-(\d{2})$/;//()表示分组

        var result=reg.exec(str);

        console.log(result)

结果为 ['2023-10-02', '2023', '10', '02']

(3)宿主对象(document)

(4)第三方库对象(jQury,Vie等)

五、数组

1.定义数组

var 数组名=[元素1,元素2,...]

new 构造函数

var 数组名=new Array(元素1,元素2,...)

2.属性

获取数组长度:数组名.length

3.遍历数组

(1)while

var list=[1,2,3,"a","b"];

        var i=0;

        while(i < list.length){

            console.log(list[i])

            i++;

        }

(2)for

var list=[1,2,3,"a","b"];

        for(var i=0;i<list.length;i++){

            console.log(list[i]);

        }

(3)for in(i是索引)

var list=[1,2,3,"a","b"];

for(var i in list){

    console.log(list[i])

}

(4)for of(i是元素)

var list=[1,2,3,"a","b"];

for(var i of list){

   console.log(i)

}

(5)map方法

var list=[1,2,3,"a","b"];

list.map(function(value,index){

            console.log("第"+(index+1)+"个元素是:"+value)

        })

4.结合数组与对象

eg1.获取第一个元素的名字

var list=[

            {name:"好好",age:18,sex:"男"},

            {name:"学习",age:19,sex:"女"},

            {name:"天天",age:20,sex:"男"},

        ]

        console.log(list[0].name)

eg2.找出所有男生,并放入一个新数组

法一:

var list=[

            {name:"好好",age:18,sex:"男"},

            {name:"学习",age:19,sex:"女"},

            {name:"天天",age:20,sex:"男"},

        ]

        var newList=list.filter(function(item){

            if(item.sex==="男"){

                return item;

            }

        })

        console.log(newList)

法二:

var newList=[];

         for(var i=0;i<list.length;i++){

            if(list[i].sex=="男"){

                newList.push(list[i]);

            }

         }

         console.log(newList)

eg3.找出最大值的索引

var list=[4,6,1,2,3,7,5],max=list[0];

        var i=0;

        list.map(function(value,index){

            if(value>max){

                max=value;

                i=index;

            }

        })

        console.log(i)

        console.log(max)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值