【狂神说Java】JavaScript最新教程通俗易懂
软件开发技能点参照:
软件开发,小白变大佬,这套学习路线让你少走弯路是认真的,欢迎讨论软件开发技能点顺序参照:
Java学习完整路线,强烈建议收藏转发
JavaScript是一门脚本语言
一个合格的后端人员,必须要精通JavaScriptECMAScript
可以理解为是JavaScript的一个标准
var num = 1;设置变量时出现warning:
'var' used instead of 'let' or 'const'
解决方法
前提:IDEA需要设置
支持ES6语法
严格审查模式预防JS的随意性导致产生一些问题
局部变量建议使用let定义
在浏览器控制台打印变量
JS不区分小数和整数,Number
正常字符串使用单引号或双引号
多行字符串编写用这个包裹``
(TAB键上面的)
字符串仍不可变
此处的是TAB上的
``
号
从第一个字符串截取到最后一个字符串 X.substring(1)
从第一个字符串截取到第三个字符串 X.substring(1,3)
true,false
&& 与
|| 或
! 非
=
== 等于 (类型不一样,值一样,也会判断为true)
=== 绝对等于(类型一样,值一样,结果true)注意
NaN与所有的数值都不相等,包括自己 (NaN===NaN返回false)
可以通过isNanN()方法返回值判断是否为NaN,true为是;false为否
第一行代码结果是false
假如给数组的length属性赋值,数组大小会发生变化。赋值过小,元素会丢失
indexOf通过元素获取下标索引
slice() 截取Array一部分,返回一个新数组
push:从尾部添加
pop:从尾部弹出
每个属性用逗号隔开,键值对描述属性 XXXX: xxxx
取对象用 Person.age
对象赋值直接赋值 person.name = “xxx”
使用一个不存在的对象属性不会报错–>输出undefined
JS中所有的键都是字符串
,值是任意对象
通过delete删除对象的属性
直接给新的属性添加值就可以实现动态添加
xxx in xxx 返回布尔类型
'age' in person
默认所有的全局变量,都会自动绑定在window对象下
Map:键值对集合数据结构
Set:无序不重复集合
如果没有执行return,函数执行完也会返回结果,结果为:undefined
在JavaScript中,函数是一等公民,这意味着函数可以被赋值给变量、作为参数传递给其他函数、或作为其他函数的返回值。此外,函数在JavaScript中也充当构造函数的角色,用于创建对象。
参数问题:JS可以传任意个参数,也可以不传递参数
手动抛出异常来判断
arguments是一个JS的关键字,代表
传递进来的所有参数
,是一个数组
(ES6引入)rest获取除了已定义的参数之外的所有参数
在JS中,var定义的变量是有作用域的
var变量在函数体中声明,则在函数体外不可用
如果两个函数使用相同变量名,只要在函数内部,则不冲突
内部函数可以访问外部函数的成员,反之不行
JS中函数查找变量从自身函数开始,由内向外,当内部没有该变量时,会去外部查找
ES6 let关键字,解决局部作用域冲突问题
规范:所有变量的定义都放在函数的头部,不能随用随定义,便于代码维护。
对象只有
属性
和方法
方法的定义:把函数放在对象里调用属性
: func.name调用方法
:带括号 func.age()
其中 func.age()是正确使用
直接getAge()会报错NaN,因为this此时代表的是window,window没有birth属性
this的指向
是可以通过apply
进行改变的
getAge.apply(func,[]) //此时this指向对象func,getAge方法参数为空所以是[]