js基础部分学习笔记

变量

数字蓝色 字符串黑色/红色

类型判断 typeof

正常数值判断 isFinite

短路操作

短路与 && 假返回本身 如果左边为真 返回右边 如果左边为假 返回左边本身 (本身空对象 为假 不赋值 真的话返回右边给他赋值)

短路或 || 如果左边为假 返回右边 如果左边为真 返回左边本身

真 && 假 ||真 真

假 真

​ 真 真

异或运算

二进制每一位数进行对比 相同返回0不同返回1

类型转换

字符

.to string()

String()

数字

Nunber()

.parseInt()

.parseFloat()

布尔

Boolean()

除了‘ ’ 0 false undefined null Nan是false 其他都是true

underfined 默认转换为Nan false转换成0 null转为0

NaN和任何值进行对比都为false !!NaN等于false

console.log()控制台打印 
doucument.write()浏览器窗口打印

if else ,switch ,三目运算,while,for

if

if () {

console.log()

} else if (){

} else {

}

switch

switch(){

case:

​ console.log()

break;

case:

​ console.log();

break;

default:

​ console.log();

break;

}

三目条件

条件?成立输出 : 不成立输出;

while

while(条件){

}

for

for(var a=1;a<10; a++;){

}

alert , prompt , confirm , write

alret 弹窗

prompt 输入框

confirm 弹窗询问 返回布尔值

document.write(0) 浏览器窗口打印

continue break

break 跳出整个循环

continue 跳出当前循环

数组

new 关键字 实例化

var ab = new Array();

var ab = [1,2,3,4,5];

数组可以修改长度 修改数组中的值

for in 遍历数组 (有可能乱序)为数组下标 for (var ab in 数组名)

for of 遍历数组 只能获取数组的值 for (var ab of 数组名)

要取数组中不存在的值 不存在的值默认属性为undefined

Array.isArray()判断数组

数组本身不相等(即使里面数值相等)每个值都是唯一的 索引是唯一的

可以对数组内的值进行对比

数组单项数值 转换为数值 如果是字符转换成nan

是多项 转换成Nan

空数组转换为true

join

拼接

将数组转换成字符串 null undefined 转换成空字符

数组名.join("这里放你要连接字符的字符")

push

往数组最后添加

数组名.push()

返回值为数组长度

unshift

往数组前面添加

和push一个用法

pop

删除最后一个

从数组后面删

shift

从数组前面删

slice

切割

var new = old.slice() 浅拷贝 直接将old数组里面的值切割过来 这连个数组是完全不同的数组

concat

拼接

进行数组间的拼接

var new = old.concat() 浅拷贝

indexof

索引 查找数组中元素所在位置 返回元素下标 如果元素不存在返回-1

数组名.indexof(“123”,1(从下标为1的值后面开始查找));

技巧

判断数组里面值类型

typeof 数组[i] === "你要判断的类型"

整数= 能被一整除 数%1===0

~~ 转换成数字类型 不是number会转换为0

将转换完的数 与 没转换时的数进行对比 如果是false 则不为整数

冒泡排序(从小到大)

var arr = [4,3,5,2,1,7,6,9,8,];
            var len = arr.length;
            var temp;
            for (var i = 0;i < len;i++){
            \\相邻两个数进行比较交换
                for (var j = 0;j < len-1-i;j++){
                    if(arr[j] > arr[j+1]){
                        temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }
            console.log(arr);

先进行相邻两个数之的比较 比较大的对比较小的进行交换 然后进行循环

选择排序

var arr = [4,3,5,2,1,7,6,9,8,];
            var len = arr.length;
            var minidx = 0;
            var temp;
            for (var i = 0;i < len;i++){
                minidx = i;
                for (var j = i+1;j < len;j++){
                    if (arr[j] <arr[minidx]){
                        minidx = j;
                    }   
                        
                }
                    temp = arr[i];
                    arr[i] = arr[minidx];
                    arr[minidx] = temp;
            }
            
            console.log(arr);

让数跟下一个数进行对比 如果比他小 下标进行交换 然后将小的数跟最前面的数进行交换 进行循环

插入排序

选一个数 这个数会对之前的数进行对比 排在比自己小后面在比自己打大前面

字符串方法

chatAt()

从字符串中返回相应数值

var a=“abcdefg”

console.log(a.charAt(1)) //b

超出范围返回空字符

indexof

返回下标

split

类似拼接

slice

切割

str.slice(3)从下标为3的地方开始切割 包括起不包括结束

trime

从一个字符串的两端删除空白字符

函数

函数声明

function 函数名(形参){}

表达式声明

var 函数名=function(){}

函数名();直接调用

var c= 函数名(实参)

不传参 默认值undefined

函数内部代码执行到return就结束

参数不限数 参数可以是任意类型

arguments 不定参列表

是函数的实参(用户传的参数)列表 集合 类数组

作用域

只有函数有局部域

函数中的数如果有声明 就把他提升到这个作用域最顶端 再进行解析

先找声明 进行提升 在解析

先提升变量 再提升函数

变量提升的时候 赋值并没有跟着提升

传参进来后 参数作为局部变量

对象

属性(特征) 方法(行为)

内置对象

  • number

  • array

  • Boolean

  • string

  • object

  • function

  • date

  • math

  • null

  • regexp 正则对象

字面量创建

创建对象

var 对象名 = new object();

对象名.属性名="";

或者

var 对象名 ={

​ 属性名: "",

​ 属性名: ""

}

构造函数

构造函数不是对象

首字母是大写的 用this关键字 生成对象用new来调用构造函数

function 构造函数名( 属性名,属性名){

​ this.属性名:”属性值“;

}

var 函数名=new 构造函数名(属性名,属性名);

delate.对象名.属性名;

函数中的this 是在哪个地方调用 this就指向谁

instanceof

object instanceof constructor

object

要测试的对象。

constructor

要测试的功能

返回布尔值

var x = 1;//字面量

//var xobj =new Number(1);

//xobj = null;

var x = new Number(1); 构造函数

区别 用字面量的时候 会隐性 创建构造函数 用完之后会销毁 所以你不能对他判断

Json

键名用双引号包括

json序列化

JSON.stringify(对象名) 将数据(对象)序列化 变成字符串

反序列化

JSON.parse() 将字符串还原成数据(对象)

总结

基础类型和对象类型

  • null undefined string number boolean

  • array object

  • function

基础内置对象

  • String Number Boolean Array Function Object Null Regexp Date Math Json Error Arguments

执行上下文

生命周期

  1. 创建阶段

  2. 执行阶段

  3. 回收阶段

this

谁调用函数 函数里的this就指向谁

自调用函数(匿名函数)里的this 都指向Windows

执行栈

JavaScript是单线程

object方法

Object.is(a,b)

判断两个值是否为一个值

对象和对象不相等 每个对象都有自己的地址

Object.freeze(需要冻结的对象)

冻结对象 不允许修改对象里面的值(任何操作都不行)

Object.assign

拼接对象

要定义一个值来放拼接数据

var c = object.assign(a,b);//a,b为拼接对象 后面返回a对象 也是拼接完成后的

a为目标对象 b为拼接对象 对象内有属性冲突 会进行覆盖 后面的会覆盖前面的

object.key

Array方法

forEach

对数组的每个元素执行一次给定的函数

数组名.forEach(function(current,index,array)){

}

foreach 的参数是个回调函数 callback

callback会返回三个值 current index array

current 数组处理的当前元素

index 处理当前元素的索引(可选)

array foreach 方法正在操作的数组(可选)

sort()

对数组里的元素进行排序并返回字符串

默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的

按照数组元素内的首元素进行解析

数组名.sort(function(a,b){return b-a})降序排列(a-b 升序默认)

map()

方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

fliter()

根据指定条件过滤数组

reduce()

归并

方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

arr.reduce(function(acc,current[,indexz[,array]])[,thisArg]){,{初始值}}

acc 累计器累计回调的返回值; 它是上一次调用回调时返回的累积值或函数累计处理的结果

lastindexof()

反向查询

方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。

reverse()

倒转数组

修改原数组 返回值也是原数组

splice()

按照下标进行替换或删除 替换内容可以是多个值

splice(从哪个的地方开始,所要截取的个数,替换内容)

includes()

用来判断一个数组是否包含一个指定的值 返回boole值

判断是按===来判断的

var a=[z,d,f,g,h]

console.log(a.includes(d,从哪开始寻找))

flat()

将一个数组降维 返回值为降维后的数组 不改变原数组

var arr = [1,[2,[3]],4]
var newArray = arr.flat([depth])
​
depth(维度) 可选
​
指定要提取嵌套数组的结构深度,默认值为 1。
​

some()

判断数组中有没有符合条件的数值

evetry()

判断数组符不符合条件(整个数组中的每一项)

String方法

charCodeAt()

将字符转换成Unicode编码

replace()

方法返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。

substr(从几位开始,总共几位)

substring(从几位开始,到几位结束)

数组去重 十八天00 数据处理之后重新看学四节

递归

在函数内重复使用函数

math

Math.random()

取随机数//范围 (0,1]

取值0-100 Math.random()*100

取值3-100 Math.random()*97 + 3

取值-20-100 Math.random()*120 - 20

Math.round()

函数返回一个数字四舍五入后最接近的整数

Math.round(20.49) //20Math.round(20.5) //21Math.round(-20.5) //-20Math.round(-20.51) //-21

Math.floor()

返回小于或等一个给定数字的最大整数:向下取整

Math.floor(x);

Math.floor( 45.95); // 45 Math.floor( 45.05); // 45 Math.floor( 4 ); // 4 Math.floor(-45.05); // -46 Math.floor(-45.95); // -46

/* 与 ~~ 去除小数位有区别 */~~(-45.95) //-45

Math.ceil()

返回大于或等于一个给定数字的最小整数

汇总

Math.PI                     // 圆周率
Math.random()               // 生成随机数
Math.floor()/Math.ceil()     // 向下取整/向上取整
Math.round()                // 取整,四舍五入
Math.abs()                  // 绝对值
Math.max()/Math.min()        // 求最大和最小值
​
Math.sin()/Math.cos()        // 正弦/余弦
Math.power()/Math.sqrt()     // 求指数次幂/求平方根

Date

// 获取当前时间,UTC世界时间,距1970年1月1日(世界标准时间)起的毫秒数var now = new Date();console.log(now.valueOf()); // 获取距1970年1月1日(世界标准时间)起的毫秒数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值