
JavaScript
文章平均质量分 80
JavaScript
一生注定学霸命
这个作者很懒,什么都没留下…
展开
-
JS总结(JS世界构造顺序、学习计划)
1.JS唯一公式对象.__proto__ === 其构造函数.prototype2.根公理(公理是人为规定的,是不容置疑的)Object.prototype是所有对象的(直接或间接)原型3.函数公理所有函数都是由Function构造的任何函数.__proto__ === Function.prototype任何函数包括:Object、Array(数组)、Function4.难点[的原型] 等价于 .__proto__只不过.__proto__正好是某个函数的prototy原创 2021-04-24 12:47:58 · 293 阅读 · 0 评论 -
4-22 JS运算符(算术、比较、布尔、二进制、点、void、逗号、优先级)
目录算术运算符比较运算符布尔运算符二进制位运算符其他运算符算术运算符1.number运算加减乘除:直接正常输入运算+ - * /余数:x%7返回值是余数难点:-1%7=-1一个数除以另一个数,要是比另一个数小的话,商为0,余数就是它自己。指数:x ** 3x的三次方自增自减:x++ / ++x / x-- / --x只加/减一个数字x在前,表达式的值就是取之前的状态,x在后同理简单来说:x在前,值为前,x在后,值为后特殊案例:求值运算符:+x加号后面取任何数,相原创 2021-04-24 01:28:05 · 478 阅读 · 0 评论 -
4 JS函数(箭头函数、立即执行函数)
箭头函数没有argument和this里面的this就是外面的this(默认为window,如果声明了什么就是什么)就算加了call也没有用箭头函数也没有定义argumentsarguments是打印出所有伪数组立即执行函数只有JS有的1.问题以前只有var的时候,想要声明局部变量只能调用一个函数缺点:为了声明局部变量a而声明了一个全局函数fn2.解决办法不给函数取名字,一个匿名函数,然后在声明后面直接加(),直接调用匿名函数,但这样JS认为不合法,因此要在这个函数前面加一原创 2021-04-21 11:01:08 · 3059 阅读 · 1 评论 -
4-16 JS数组(增加和修改数组中的元素、数组变换:map、filter、reduce)
1.增加数组中的元素在尾部加元素arr.push(newItem):修改arr,返回新长度(push推)arr.push(item1,item2)在头部加元素arr.unshift(newItem)arr.unshift(item1,item2)在中间添加元素arr.splice(index,0,'x')在index(如:index=4,则在第4个位置,也是第三个位置的后面间隙)处插入x,0表示什么都不删arr.splice(index,1)在index这个位置删掉一个arr.spli原创 2021-04-22 12:30:35 · 3707 阅读 · 0 评论 -
4-15 JS数组(遍历数组、forEach、indexOf、find)
1.查看所有元素1.查看所有属性名Object.keys(arr):查看所有属性名Object.values(arr):查看所有属性值for(let i in arr){console.log(i)}:for(in)是自动的所有key都遍历,是用来访问对象的=缺点:以上方法只适合对象,不适合数组,用户在访问时只想访问数字(字符串),不想访问到 x2.查看数字(字符串)的属性名和值for循环是访问数组的常见形式1.for循环for(let i = 0; i< arr.lengt原创 2021-04-22 00:11:19 · 978 阅读 · 0 评论 -
4-13 JS对象分类(原型和共有属性、对象分类、函数对象、数组分类、class语法)
原型和共有属性1.关系JS的对象只能存简单数据类型和地址,不能存对象2.如何确定一个对象的原型函数fn由谁构造,fn的原型就是谁的prototype属性对应的对象let obj = new Object() 的原型是 Object.prototypelet arr = new Array() 的原型是 Array.prototypelet square = new Square() 的原型是 Square.prototypelet fn = new Function() 的原型是 F原创 2021-04-21 21:49:57 · 444 阅读 · 0 评论 -
4-12 JS对象分类(构造函数、代码规范)
构造函数(学完函数再来看)对象需要分类吗?构造函数:可以构造出对象的函数把细节写到一个函数里面叫做封装函数里面的代码要调用到的时候才会运行,没有调用就不会运行所有JS里面的函数,从出生开始就有带一个叫prototype的属性prototype里面从出生就有一个constructor,而constructor的值为函数本身prototype就是所有函数共用的属性所有的构造函数首字母都要大写构造出来的对象首字母小写其他函数一律以动词开头...原创 2021-04-21 17:57:38 · 135 阅读 · 0 评论 -
4 JS函数(arguments和this、绑定bind)
JS的三座大山:原型链 、this、 AJAXarguments和this每个函数都有,除了箭头函数(新语法)1.arguments是包含所有参数的伪数组代码function fn(){ console.log(arguments)}fn()如何传arguments1.调用fn即可传arguments2.fn(1,2,3)那么arguments就是[1,2,3]的伪数组因为给定参数后,发现是一个数组,但是没有数组的共有属性,因此是一个伪数组Array.from()可原创 2021-04-21 10:05:02 · 401 阅读 · 0 评论 -
4 JS函数的要素(调用栈、函数提升)
调用栈1.什么是调用栈在调用一个函数的时候,需要进入另外一个环境(函数)去执行它,执行完了再返回来调用栈实际就是记录进入一个函数后,回去应该回到什么地方就类似于打游戏存档读档JS引擎在调用一个函数前需要把函数所在的环境推push到一个数组里这个数组叫做调用栈等函数执行完了,就会把环境弹(pop)出来然后return到之前的环境,继续执行后续代码2.举例console.log(1)console.log('1+2的结果为'+add(1,2))console.log(2)由于原创 2021-04-20 19:02:09 · 197 阅读 · 0 评论 -
4 JS函数的要素(调用时机、作用域、闭包、形式参数、返回值)
函数的要素每个函数都有这些东西调用时机作用域闭包形式参数返回值调用栈函数提升arguments(除了箭头函数)this(除了箭头函数)一、调用时机调用函数的时机就像是刻舟求剑,时机很重要。看到函数先直接跳过,一定要看到调用语句才会执行函数。例1以下代码打印出什么?let a = 1function fn(){ console.log(a)}a = 2fn()答:2,先a=2,再调用fn例2以下代码打印出什么?let a = 1func原创 2021-04-20 17:50:07 · 286 阅读 · 0 评论 -
4 JS函数(函数的四种定义方式、函数自身和函数调用)
函数是对象1.定义一个函数具名函数具有名字的函数function 函数名(形式参数1,形式参数2){ 语句 return 返回值}匿名函数去掉函数名就是匿名函数let a = function(x,y){return x+y}等式左边:声明一个变量a,并且把它赋值为等式右边:函数表达式function(x,y){return x+y}注意:a不是函数名,它只是一个变量保存了函数的地址前两者结合let a = function fn(x,y){ return x原创 2021-04-20 14:32:17 · 621 阅读 · 0 评论 -
4-14 JS数组(删除数组中的元素)
JS对象可以分很多类,其中包括数组和函数数组对象数组是一种特殊的对象JS其实没有真正的数组,只是用对象模拟数组在其他语言中,数组是一个连续的空间分配,但在JS中不是1.JS数组不是典型数组典型的数组1.元素的数据类型相同(都是数字)2.使用连续的内存存储3.通过数字下标获取元素JS的数组不是这样1.元素的数据类型可以不同(可以是数字或者对象,内存可以不连续)2.内存不一定连续(对象是随机存储的)3.不能通过数字下标来获取,只能通过字符串下标(下标是key,只能是字符串),因此J原创 2021-04-20 11:14:01 · 375 阅读 · 0 评论 -
4-11 JS数据类型(JS对象、对象属性的增删改查)
对象的语法第七种数据类型,唯一一种复杂类型,因为里面可以包含东西(包括它自己)1.定义无序的数据集合:下方name和age的顺序改变都可以键值对的集合:name是键(key),frank是值,组成一对一对或者一对以上都是对象2.写法let obj = { 'name' : 'frank', 'age' : 18}其中name和age只能是字符串,就算删掉也只能是字符串let obj = new Object({ 'name' : 'frank'})这是正规写法,但太复杂,一般用第一原创 2021-04-19 18:45:39 · 468 阅读 · 1 评论 -
4-10 JS数据类型(变量声明、类型转换、新数据类型bigint)
一、变量声明变量声明的时候,既指定了值,又指定了类型但值和类型可以改变var a = 1 //值为1,类型为numbera = 2 a = '字符串' //值和类型可以改变 1 三种声明方式var a = 1let a = 1const a = 1a = 1 (错误写法,不能这样声明,这是赋值)1.2 三种方式的区别var是过时的,不好用得到方式let是新的,更合理的方式(一般认为是变量声明)const是声明时必须赋值,且不能改进的方式(常量声明)1.3 var变量提原创 2021-04-19 11:58:56 · 473 阅读 · 0 评论 -
4-9 JS数据类型(number、string、bool、symbol、null、undefined)
JS中的数据类型01 共7种类型(大小写无所谓)数字 number字符串 string布尔 bool真或假,只有两个值true和false,注意大小写符号 symbol(用得少)空 undefined空 null对象 object总结:四基两空一对象02.以下不是数据类型数组、函数、日期(都是特殊的对象)以上都属于object1.数字 number64位浮点数1.1 写法一般前三个用的较多1.2 特殊值正0 和 负0都等于0 ,要严谨区别点:1/0=正原创 2021-04-19 11:27:22 · 682 阅读 · 0 评论 -
4-8 JS数据类型(Unicode与UTF-8)
数据为什么需要类型?数字与字符串都是一,为什么要区分1和’1’(数字1和字符串1)数字1存储形式就是1而字符’1’存储形式是491.两者功能不同数字是数字,字符串是字符串数字能加减乘除,字符串不行字符串能表示电话号码,数字不行因为数字不能以0开头,任何一个以0开头的数字都要把0省略而电话号码很多 010-11111,电话号码里面还可能有字母(有的国家)2.存储形式不同JS中,数字是用64位浮点数的形式存储的JS中,字符串是用类似UTF8形式存储的(UCS-2)3.如何原创 2021-04-18 22:58:02 · 217 阅读 · 0 评论 -
4-7 JS语法(while循环、for循环、break和continue、label标签)
while循环1.语法当…时while(表达式){ 语句 }判断表达式的真假当表达式为真,执行语句当表达式为假,执行后面的语句执行完再次判断表达式的真假2.奇怪的例子死循环案例:当 a 不等于 1 时,打印出 a,且 a = a+1死循环原因:浮点数不精确var a = 0.1while(a !== 1){ console.log(a) a = a + 0.1}for循环1.语法糖for 是 while 循环的方便写法方便的地方:while的原创 2021-04-18 21:20:26 · 499 阅读 · 1 评论 -
4-6 JS语法(条件语句:if、switch、&&、||、A?B:C)
总结:条件语句if…else…switchA?B:C如果A为真,则执行B,否则执行CA && Bfn && fn() 如果fn存在,则调用fnA || BA = A || B 如果A存在,则A等于A,否则A等于B一、if语句如果…那么…1.语法if(表达式){语句1}else{语句2}如果表达式成立,那么语句1执行,如果不成立,则语句2执行{}在语句只有一句的时候可以省略,但不建议这么做2.变态情况表达式里可以变态,如 a = 1原创 2021-04-18 19:52:28 · 1394 阅读 · 0 评论 -
4-5 JS语法(表达式、语句、标识符、区块)
JS版本:ES6是最低要求ES3,IE6支持,总体评价:辣鸡ES5,总体评价:辣鸡ES6,大部分浏览器支持,JS现代化的标志ES2019与ES6差别不大ES更新不能删除以前的特性,要兼容旧网站取其精华,去其糟粕一、表达式与语句1.表达式1 + 2 表达式的值为3add(1,2)表达式的值为函数的返回值值和返回值是不一样的,只有函数有返回值console.log表达式的值为函数本身console.log(3)表达式的值为?值为undefined,因为 console.log(原创 2021-04-18 18:18:16 · 149 阅读 · 1 评论 -
4-3 JS概览(原型)
原型链1.案例解析window.object.prototype:里面有很多函数案例1:该案例为什么不报错,为什么可以运行?var obj = {}//给了对象obj一个空集obj.toString()//obj里面的toSring属性疑问:obj里面是一个空集,里面不会存在toString属性原因分析:var obj = {}虽然是一个空集#9011,但里面有一个隐藏属性XX(未知),隐藏属性XX保存了window.Object.prototype指向的对象#409地址也就是说:当o原创 2021-04-18 10:19:23 · 118 阅读 · 0 评论 -
4-2 内存图与JS世界(进程与线程、JS引擎、内存图、JS原型)
一、进程与线程1.英语小课堂Operating System 操作系统,简称OSruntime 运行时(运行时你所需要的所有东西)JS运行的时候需要浏览器,那么浏览器就会提供一个运行时给JSenvironment 环境,简称envperson 一个人kernel 内核compile 编译memory 记忆、存储people 一群人(person的复数)2.操作系统常识一切都运行在内存里2.1 开机通电——读固件——加载开机程序——操作系统被加载到程序里操作系统在C盘里(m原创 2021-04-17 20:36:18 · 233 阅读 · 0 评论 -
4-1 JS概览(JavaScript的诞生、标准定制、十个缺陷)
1.如何统计自己的代码行数安装:yarn global add cloc(cloc:count lines of code)统计:cloc --vcs=git .(.表示分析当前目录)2.李爵士发明HTML赖先生发明CSS布兰登发明JS一、JavaScript的诞生1.布兰登临危受命公司要求给浏览器添加一个脚本功能脚本必须蹭Java的流量布兰登花了十天设计了JS的最初版本2.JS的命名Mocha摩卡=>LiveScript=>JavaScriptJava既是编原创 2021-04-17 18:16:28 · 244 阅读 · 0 评论