JavaScript 常见面试---函数+对象+部分

1.箭头函数
1,跟常规写法比较:箭头函数表达式的语法比普通函数表达式更简洁。
有的箭头函数都没有自己的 this。 不适合定义一个 对象的方法。
当我们使用箭头函数的时候,箭头函数会默认帮我们绑定外层 this 的值,所以在箭头函数中 this 的值和外层的 this 是一样的。
箭头函数是不能提升的,所以需要在使用之前定义。

// ES5
var x = function(x, y) {
     return x * y;
}
// ES6
const x = (x, y) => x * y;

2.函数是对象
1,在 JavaScript 中使用 typeof 操作符判断函数类型将返回 “function” 。但是JavaScript 函数描述为一个对象更加准确。

this 关键字
1,一般而言,在Javascript中,this指向函数执行时的当前对象。
2,当函数没有被自身的对象调用时 this 的值就会变成全局对象。

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2); 
var data=this.myFunction()  

全局变量
a 是一个全局变量。
1,全局和局部变量即便名称相同,它们也是两个不同的变量。修改其中一个,不会影响另一个的值。

var a = 4;//全局变量
function myFunction() {
	var b=2//局部变量
    return a * a;
}

闭包函数三大特性

function Student(){
    var age=22;
    function addAge(){
        age+=1;
    }
    return addAge;
}
    var fn=Student();
    console.log(fn)//输出23

1,函数嵌套函数。
2,函数内部可以引用外部的参数和变量。
3,参数和变量不会被垃圾回收机制回收。
闭包好处
1,希望一个变量长期存储在内存中。
2,避免全局变量的污染。
3,私有成员的存在。
闭包缺点
1,常驻内存,增加内存使用量。
2,使用不当会很容易造成内存泄露。

JavaScript 对象
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…
此外,JavaScript 允许自定义对象。
例如:

var message="Hello world!";
var x=message.toUpperCase();
console.log(x)//输出 HELLO WORLD

JavaScript 中undefined和null的区别
1,Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
2,Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

JavaScript for…in 循环

var person={fname:"John",lname:"Doe",age:25}; 
for (x in person)
{
	txt=txt + person[x];
}

JavaScript prototype(原型对象)
所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法。
在前面的章节中我们学会了如何使用对象的构造器(constructor):
prototype 继承
所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:
Date 对象从 Date.prototype 继承。
Array 对象从 Array.prototype 继承。
Person 对象从 Person.prototype 继承。

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
console.log(Person.nationality)//输出English

NaN - 非数字值
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

Number 属性

属性描述
Number.MAX_VALUE最大值
Number.MIN_VALUE最小值
Number.NaN非数字
Number.NEGATIVE_INFINITY负无穷,在溢出时返回
Number.POSITIVE_INFINITY正无穷,在溢出时返回
Number.EPSILON表示 1 和比最接近 1 且大于 1 的最小 Number 之间的差别

数字方法

方法描述
Number.parseFloat()将字符串转换成浮点数,和全局方法 parseFloat() 作用一致。
Number.parseInt()将字符串转换成整型数字,和全局方法 parseInt() 作用一致。
Number.isFinite()判断传递的参数是否为有限数字。
Number.isInteger()判断传递的参数是否为整数。
Number.isNaN()判断传递的参数是否为 isNaN()。
Number.isSafeInteger()判断传递的参数是否为安全整数。

数字类型原型上的一些方法

方法描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值