您的位置:首页 > Web前端 > JavaScript

JavaScript基础笔记(四)

2020-02-01 09:40 232 查看

这个系列记录之前学习JS基础的一些知识点和笔记,希望会对一些刚开始学习JavaScript的入门者有用,若有错误与不当之处欢迎指出与纠正!!!

三十一
JS中函数的实参和形参的个数可以不相等(不会报错)
但是结果可能不会正确
三十二 arguments对象(伪数组)
Aarguments对象包含了传入函数中的所有参数,arguments并不是一个数组,只是与数组相似。除了拥有length属性,数组的所有属性和方法都不具备。
Arguments对象还有一个名叫callee的属性,该属性是一个指针,只想拥有这个arguments对象的函数。
运用情况:写一个函数,计算多个数的和
Function sum(){
Console.log(arguments);
}
Sum(10,20,30);//arguments打印出来为数组Arguments(3);0:10;1:20;3:30;
arguments.length表示实参的个数
sum.length表示形参的个数(也就是函数名.length表示函数内设置形参的个数)
三十二 return
如果函数没有显示的使用return语句,那么函数有默认的返回值:undefined
如果函数适用return语句,那么跟在return后面的值,就成了函数的返回值
如果韩束使用return语句,但是return后面没有任何值,那么函数的返回值也是undefined
推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值
三十三 作用域
函数直接申明的: JS解析器首先会把当前作用域的函数声明提前到整个作用域的最前面
函数表达式方式申明的:不会把函数申明的作用域提前到最前面
三十四 匿名函数(没有命名的函数)
1.用在绑定事件的时候
Document.onclick = function(){alert(“1”)}
2.定时器
setInterval(function(){
console.log(444);
},1000);
3.自调用函数(function(){alert(“hello”)})();
三十五 回调函数
回调函数就是一个通过函数调用的函数
如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
一般用于递归(函数里面又有函数)
三十六 变量作用域
 块级作用域:在其他语言中,任何一对花括号中的语句都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,但是在JS中除了函数内部有一个作用域的概念,其他的地方都没有作用域的概念
 全局变量:定义在script或者不属于某个函数的 变量
 局部变量:定义在函数内部的变量
注意:函数内部可以访问到该函数所述的外部作用域的变量(作用域链);
不使用var生命的变量是全局变量,不推荐使用;
变量退出作用于之后会销毁,全局变量关闭网页或浏览器才会销毁;
三十六 难题坑
var num=10;
fun();
function fun(){
console.log(num)
var num=20;
}//输出结果为:undefined
因为在运行Console.log(num)时因为包含在num的作用域里面,所以会把num的申明提前,结果就会变成var num; console.log(num);就会变成undefined(注意此处把申明提前但是不会给变量赋值,最终运行程序会变成var num; console.log(num);num=0;)
三十七 变量作用域2
其他语言中变量i等只能在for循环内部访问(局部变量),但JS中If、for…里面定义的i等变量是全局变量,在循环外也是作用域,既可以用在内部也可以用在外部
 函数内部可以访问到函数所属的外部作用域的变量(作用域链)
 不使用var声明的变量是全局变量,不推荐使用
 变量退出作用于之后会销毁,全局变量关闭网页或浏览器之后才会销毁
var num=10;
fun();
function fun(){
console.log(num);
var num=20;
}//输出是:undefined,因为在输出前会先在本作用域里(比如函数内部)找寻num变量,如果有的话会把声明提前,但不会赋值所以输出是undefined.
Var a=b=c=0;var a=0;b=0;c=0;//其中b、c是全局变量(未申明var),a的作用域仅限于函数内部;
三十八 对象和面对对象
面向对象:可以创建自定义的类型,很好的很好的支持继承和多态,面向对象的语言c++/java/c#;特征:封装、继承、多态;万物皆对象:世间的一切事物都可以用对象来描述。
基于对象:无法创建自定义的类型,不能很好的支持继承和多态;基于对象的语言,比如JavaScript。
三十九 JS中常见的对象 Object
 无序属性的集合
 对象的行为和特征
 字面量对象
 JSON
 遍历对象的属性 for…in遍历对象的属性或者方法
 构造函数
 This
 构造器和原型属性(construct和prototype)
 其他语言中面向对象
四十 JSON
JSON与字面量对象的区别?
JSON的属性名必须用双引号引起来,对象字面量可以省略
JSON本质上是以一种数据开发格式,有两种结构:对象和数组,两种结构相互结合组合产品那个人形成各种复杂的数据结构
JSON典型的特征:要么以大括号开头、要么以数组开头,一般是以大括号。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Jiang_29k 发布了39 篇原创文章 · 获赞 0 · 访问量 392 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: