Posts
JS函数对象
JS函数对象 在讲函数之前,我们需要先知道函数也是一种对象。
1,定义函数 function fn(形参1,形参2){ 语句 return 返回值 } //具名函数 let a = function(x,y){ } //匿名函数 let f1 = ()=>{} //箭头函数 let f2 = new Function('x','y','return x+y') //使用构造函数,基本没人用,可以让你知道所有函数都是Function构造的,包括Object,Array,Function本身。 fn() //函数调用 2,函数要素(每个函数都有) 调用时机 函数在调用的时候,才会去使用,并不是声明了直接使用,注意调用时机。
作用域 每个函数都会默认创建一个作用域,一般都在{}中,其中在全局作用域声明的变量是全局变量,比如window的属性,其他的变量都是局部变量。作用域遵循就近原则。
闭包 如果一个函数用到了外部的变量,那么这个函数加这个变量,就叫做闭包。
function f1(){ let a = 2 function f2(){ console.log(a) } } 上述代码就是一种简单的闭包。
形式参数 在创建一个函数时,会给这个函数赋予参数,这些就是形式参数,并不是实际的参数,实际的参数在调用函数时传递,然后赋值给形参。 function fn(a,b){ return a+b } fn(1,2) 上述代码中的a,b是形式参数。1,2是实际参数,会被赋值给a,b。
Posts
JS.数组对象
JS数组对象 1,声明数组 let arr = [1,2,3] let arr = new Array(1,2,3) //直接声明 let arr = '1,2,3'.split(',') let arr = '123'.split('') Array.from('123') //字符串转数组 arr1.concat(arr) //concat合并两个数组 arr1.slice(1) //从第一个开始切 arr1.slice(0) //切全部数组 2,增删改查 因为数组也是对象,数组的增删改查都可以使用对象的方法来达成,但是不够靠谱,所有我们这里只说数组独有的方法。
(1) 删 arr.pop() //删除数组最后一个元素 arr.shift() //删除数组第一个元素 arr.splice(start,n,'a','b') //splice方法接受参数,第一个参数表示从第几个开始删除,第二个参数表示删除几个,第三个参数表示用什么来替换。 (2) 增 arr.push('a') //从尾部增加一个元素 arr.unshift('a') //从头部增加一个元素 (3) 查 let arr = [1,2,3] for(let i = 0; i<arr.length;i++){ console.log(arr[i]) } //使用for循环遍历数组,得到数组中每个元素 arr.indexOf(value) //查找元素下标 arr.find(fn()) //找到符合条件的元素 arr,findIndex(fn()) //找到符合条件的元素下标 (4) 排序 arr.
Posts
Js对象总结
JS对象总结 在说js对象之前,先回顾一下js的七种数据类型,分别是number,string,boolean,symbol,undefined,null,object。五种falsy值,undefined,null,'',0,NaN。
1,声明对象 对象是键值对的集合,其中键名是字符串,就算不加引号,js也会把他转成字符串。键值可以是数值,字符串,数组,函数,对象等。普遍使用以下代码声明一个对象。
let obj = { name:'jack', arr:[], func: (){ console.log('function') } obj1:{ a:'hello' } } 2,增删改查 (1) 删 delete obj.name //直接删除一个键值对 obj.name = undefined //将一个键值改成undefined(属性名依然存在) name in obj //判断属性名是否存在 (2) 查 Object.keys(obj) //查看所有属性名 Object.values(obj) //查看所有属性值 console.dir(obj) //查看所有属性(包括隐藏属性) obj.hasOwnProperty('') //检查该属性是否自身所有 obj['key'] //查看属性值 (3) 增 obj.name = 'jack' //直接赋值 obj['name'] = 'jack' //直接赋值,和上面一样作用 Object.assign(obj,{'name':'jack'}) //批量赋值 (4) 改 改的操作和增的操作基本一致。 3,原型链 我们知道每个对象都有隐藏属性__proto__,指向自己的原型,那么如果要自己增加原型该怎么做呢。 首先我们自己创建一个原型对象。
Posts
JS对象基本语法
今天简单学习了js对象,学到了很重要的东西,这里简单记录一下学习笔记。
一,声明对象 定义:键值对的集合。对象的属性名为字符串,不带引号设置也为字符串。 let obj = {键:值}
let obj = {name:'cong', age:18} let obj2 = new Object({name:'cong',age:18}) 上述代码是两种声明方式,可以直接声明变量赋值,也可以使用标准写法声明。
二,删除属性 let obj = {name:'cong', age:18} delete obj.name delete obj['name'] 一般采用上述两种方式删除对象属性,需要注意的是,如果将属性值设置为undefined,属性名依然存在,只是值为undefined 判断属性名是否存在的方法—–> name in obj
三,查(读)属性 let obj = {name:'cong', age:18} Object.keys(obj) //查看所有属性名(不包括隐藏属性) Object.values(obj) //查看所有属性值 Object.entries(obj) //查看属性名和属性值 console.dir(obj) //查看属性+隐藏属性 obj.key('name') //查看单个属性的属性值 需要注意的是obj[name],obj[‘name’],obj.name的区别。其中obj.name = obj[‘name’],obj[name]表示查看name变量对应的值,先变成字符串,再作为属性名,在obj中的属性值。
四,增,改属性 let obj = {} obj['name'] = 'cong' //如果存在就修改,不存在就增加 obj['age'] = 18 Object.assign(obj,{name:'cong',age:18}) // 同时增加或修改多个属性 以上两种为单个赋值和批量赋值。
五,原型链 每个对象都有原型,如果要自己创建一个对象的原型,可以这样创建。
Posts
Js基本语法
今天简单学习了一些js的基本语法 1,什么是表达式和语句 表达式一般都有值,语句可能有,也可能没有。比如
1+2 值为3 add(1,2) 值为函数的返回值 console.log 值为函数本身 console.log(3) 值为函数的返回值--->undefined 上述都是表达式。
var a = 1 var b 这是一个语句,他可以有自己的值,也可以没有。 需要注意的是,值和返回值不同,只有函数有返回值。在js中大部分空格都没有实际意义,回车也是一样,在return后面不能加回车,如果加回车,他将返回undefined。
如果函数没有被调用,他的值就是他本身,如果函数被调用,他的值就是他的返回值。 如图所示
2,标识符的规则 第一个字符,可以是Unicode字母或¥或_或中文。 后面的字符,除了上述几种,还可以有数字。 变量名都是标识符
var _ = 1 var $ = 2 var ____ = 3 var 你好 = 'hi' 3,if else语句 if(表达式){语句1}else{语句2},用来做简单判断,如果表达式内容为true,执行语句1,否则执行语句2。if else 语句是可以嵌套使用的,可以添加多个if条件。if语句如果只有一句,{}可以省略,不推荐这样做。
if(表达式) { 语句 } else if(表达式) { 语句 } else { 语句 } 一般这样使用就可以。
问号冒号表达式 if else语句的一种缩写形式,比如 if(a>b){ console.log(a) } else { console.