s基础数据类型
string
number
boolean
以是三个有自有的类类型
undefined
null
symbol
`小撇
可以实现换行
·
Function继承Object
instance Function extends Object
Number()可以通过 +替代
npm init -y
npm i http-server
npm i http-server -save-dev
scripts
内置的
start
test
call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。因为 JavaScript 的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。
二者的作用完全一样,只是接受参数的方式不太一样。例如,有一个函数 func1 定义如下:
var func1 = function(arg1, arg2) {};
就可以通过 func1.call(this, arg1, arg2); 或者 func1.apply(this, [arg1, arg2]); 来调用。其中 this 是你想指定的上下文,他可以任何一个 JavaScript 对象(JavaScript 中一切皆对象),call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。
JavaScript 中,某个函数的参数数量是不固定的,因此要说适用条件的话,当你的参数是明确知道数量时,用 call,而不确定的时候,用 apply,然后把参数 push 进数组传递进去。当参数数量不确定时,函数内部也可以通过 arguments 这个数组来便利所有的参数
1、变量命名必须以字母、下划线”_”或者”$”为开头。其他字符可以是字母、_、美元符号或数字。
2、变量名中不允许使用空格和其他标点符号,首个字不能为数字。
3、变量名长度不能超过255个字符。
4、变量名区分大小写。(javascript是区分大小写的语言)
5、变量名必须放在同一行中
6、不能使用脚本语言中保留的关键字、保留字、true、false 和 null 作为标识符。
截止到目前为止JS描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符。if for switch case break continue while var function
中文版:https://doc.react-china.org/
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
动态函数 捕获不到上下文 安全 函数体可以动态编辑
var fn2 = new Function( "a","b", "console.log(a+b)");//fn2 === fn 可用来动态的形参
fn2(1,2);
字符串
str.length
str.substr 第一个可以为负,第二个是字符串个数,不能为负。
str.substring 不可为负
str.slice(b,e) 都可以为负值
str.trim()
str.indexOf
str.lastIndexOf
str.search()
str.split()
str.replace
正则表达式
var re = /abc/g
var re2 = new RegExp(“abc”)
加上g后,全局。lastIndex上一次匹配的位置,下一次继续往后匹配。
result = gre2.exec("aaa-ccc-abc-ddd-abc");
console.log(result,gre2.lastIndex);
无限循环,不会跳转。
数组
arr.map(function(item index arr){})
可以修改每个值返回,作为新的数组的对象。return。
arr.forEach()
拿到每一个,不可中断。
reduce 从左到右归一。prev+next
reduceRight(function(prev,next,nextIndex,arr),”第一个值初始化”)
splice(n1,n2,str1,str2...)
n1代表起始位置 ,0开始。
n2为 0 代表 后面均为连续新增插入字符。
n2为 1以上等数字 ,且后面无字符串,表示删除此n1位置后的n2位。
如后面有字符串,字符串先更改原有的n2位字符,多出来的作为新增。
// arr.every() 全部通过函数测试
// arr.some() 某些无素测试通过
arr.map 可以遍历修改其中的元素
//arr.filter()过滤器
const result2 = str.reduce(function(prev,next,nextIndx,arr){
return prev+next;
},"第一次调用时作为第一个值prev")
for(let value of arr){
}