JavaScript(一)

一、JavaScript的组成三部分

    1、ECMAScript ( JS语法 )
    2、DOM( 页面文档对象模型 )
    3、BOM( 浏览器对象模型 )

二、JS的三种写法

    1、行内嵌入式

< ... onlink = "alert ( ... )" />

    2、页面头部

<head>
	...
	...
	<script> ... </script>
</head>

    3、JS代码页

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

三、常见弹出框

1、弹出警示框

 alert( 对象 );

2、控制台打印输出信息

console.log( 对象 );

3、弹出输入框,可以输入

prompt( '显示内容' );(这里输出的值默认是String)

 

四、判断是否是数字类型

inNaN()

返回值为 true ,非
	    false ,

五、undefined 和 null

undefined 表示变量未赋值
null 表示值为(空值本身也是一种赋值)
 

六、typeof

typeof + 对象:检测数据类型
 

七、数据转换

1、转为字符型

    ① xxx.toString
    ② String( … ); 强制转换
    ③ + 字符串

2、转为数值型

    ① parseInt( String ) 把String转为整数
    ② parseFloat( String) 把String转为浮点数
    ③ Number(); 强制转换
    ④ js隐式转换( - * / )

 

八、函数(方法)调用

function xxx(...){
	...
	...
	(且这里的局部变量,在外面也可以使用(这一点跟Java不一样))
	...
}

xxx( ... );

 

九、arguments

    1、当不知道具体参数数量是,可以用arguments获取;
    2、这个函数是内置的,用于存储所有参数;
    3、(伪数组)类似于数组,可有 length、遍历 等方法,与数组构造相似,但是不可以有 push()、pop() 等方法。

十、预解析

js 引擎运行 js 分两步:预解析 和 代码执行
① 预解析:在所有作用域内,把所有的变量声明和函数声明都提到最前面
② 代码执行:从上往下

十一、作用域

作用域内所有赋值独立,每个作用域内都会被声明提前
如果局部中有变量没有声明,直接赋值,那这个变量相当于全局变量

十二、遍历对象

1、for循环

for(变量 in 对象){
	console.log(变量);    => 遍历输出属性名
	console.log(对象[变量]);   => 遍历输出属性值
}

2、foreach循环

let arr1 = [1, 2, 3, 4, 5]
arr1.forEach((value, index, array) => {
    console.log(value); //遍历输出每一个值
    console.log(index); //遍历输出每一个索引号
    console.log(array); //遍历输出该数组
});

十三、格式日期

    ① new Date()对象

getFullYear()  =>getmonth()  =>getDate()  =>天(其他对象的用命名用Dates,不可用Date)
getDay()  =>星期 5
// 星期一般的形式,需要以下遍历方式,对应输出
var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];

十四、总毫秒数(时间戳)

Date.now()  => 结果是number数字类型
var xx = +new Date()(最常用)

十五、声明变量的三种关键字

    ① var 一般用于全局变量
    ② let 局部变量,可改赋值,更为严格
    ③ const 不可改赋值
 

十六、数组

1、检测是否为数组

① arr instanceof Array  ==>  true / false
② Array.isArray(arr)(新版才有,功能更全)

2、reduce()叠加器方法

let result = arr.reduce((callback,initiaValue) => {
	......循环方法体......
},0)


let 结果变量 = 数组.reduce((临时接收结果的新变量,用于索引的变量) => {
	......循环方法体......
},结果数值变量的初始值,如果不写则默认初始值为数组第一个数)

1.reduce(callback,initiaValue)会传入两个变量,回调函数(callback)和初始值(initiaValue)。
2.假设回调函数有4个传入参数,prev和next(可能还有 index和array)。 Prev和next是你必须要有的。(index: 当前元素的索引;array:当前元素所属的数组对象)
3.当没有传入初始值时,prev是从数组中第一个元素开始的,next数组是第二个元素。
4.但是当传入初始值(initiaValue)后,第一个prev将是initivalValue,next将是数组中的第一个元素。

简单用法:

let arr1 = [1,2,3,4,5]
//求和
let sum=arr1.reduce((pre,item)=>{
    return pre + item
},0)
console.log('sum=',sum);   //15
  
//求积
let mul = arr1.reduce((x,y)=>{
    return x*y
})
console.log('mul=',mul)    //120

//数组中元素出现的次数
let name=[1,5,2,1,6,5,1,2,4,2,4,3,5,6];
let nameNum = name.reduce((pre,item)=>{
    if(item in pre){
        pre[item] ++
    }else{
        pre[item]=1
    }
    return pre
},{})
console.log('次数',nameNum)
//{1: 3, 2: 3, 3: 1, 4: 2, 5: 3, 6: 2}

//去重
let name=[1,5,2,1,6,5,1,2,4,2,4,3,5,6];
let newArr=name.reduce((pre,item)=>{
	if(!pre.includes(item)){
        return pre.concat(item)
    }else{
        return pre
    }
},[])
console.log('newArr',newArr)   //[1,5,2,6,4,3]

//将二维数组转化为一维数组
let cat=[[1,2],[2,3],[3,4],[4,5]];
let newCat=cat.reduce((pre,item)=>{
return pre.concat(item)
},[])
console.log(‘二维’,newCat) //[1,2,2,3,3,4,4,5]

//多维数组转化为一维
let drunk=[[0,1],[1,2],[1,[1,2,3,4],5]];
let newDrunk=function(drunk){
return drunk.reduce((pre,item)=>pre.concat(Array.isArray(item)?newDrunk(item):item),[])
}
console.log(‘多维’,newDrunk(drunk)) //[0,1,1,2,1,1,2,3,4,5]

3、concat()数组合并方法

① 使数组头尾相连,产生一个新的数组,不会改变原来的数组,且数组维度不变

arr1.concat(arr2);

② 使数组合并为一个数组,会相对原来的数组降维

arr1.concat。apply(arr2);

4、indexOf()检测方法

返回首次出现 ‘abc’ 的位置,没有则出现 -1

arr.indexOf('abc');

5、push()添加元素方法

在数组末尾添加元素

arr.push('a','b',3,...,100);

6、slice()截取数组方法

var a = [1,2,3];
//从索引1开始截取到结束。
console.log(a.slice(1)); >>[2, 3]

//从索引1可以截取到索引2之间的值
console.log(a.slice(1,2)); >>[2]

//从末尾-1索引截取一个值
console.log(a.slice(-1)); >>[3]

//从索引0开始截取到末尾索引-1的值 
console.log(a.slice(0,-1)); >>[1,2]

十七、字符串

1、substr()截取字符串

从0开始截取2个长度的字符,生成新的字符串

var str = 'abcd';
str.substr(0,2); ==> 'ab'

2、replace()替换方法

替换里面的某一个元素==(方法只替换字符串中的第一个元素)==

var str3 = "javascript is a good script language";
var str4 = str3.replace('a', 'A');
var str5 = str3.replace(/a/g, "A");
console.log(str4);
console.log(str5);

结果如下:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄火锅rrds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值