美文网首页
JavaScript基础问答(一)

JavaScript基础问答(一)

作者: Yura555 | 来源:发表于2017-02-22 23:42 被阅读0次
1:什么是引用类型?
在ECMA中引用类型是一种数据结构,用于将数据和功能组织在一起。
2:JavaScript中有哪几种引用类型?
  Object 、Array 、Date、RegExp、Function、基本包装类型、单体内置对象
3:请说出基本类型值有哪些?

Undefined、Null、Boolean、Number、String。这五种基本数据类型是按值访问的,因为可以操作保存在变量中实际的值而不是引用。

4:创建Object实例有哪些方法?
  //方法一:使用new操作符后跟Object构造函数
  var person = new Object();
  person.name = 'yura';
  person.age = 14;
  
 //方法二:使用对象字面量
  var person = {
      name:'yriua',
      age:13
  };

注意:在通过对象字面量定义对象时,实际上不会调用Object构造函数

5:访问对象属性有哪几种方法?
      //方法一:通过方括号语法
      //方括号优点主要是可以通过变量来访问属性
      //若属性名中包含会导致语法错误的字符,或者属性名使用关键字或保留字,使用方括号。
      console.log(person['name']);

      //方法二:通过点语法
      console.log(person.name;);
6:简单介绍一下Funtion类型。
      函数实际上是对象。每个函数都是Function类型的实例。而且都有其他引用类型一样具有属性和方法。由于函数式对象,所以函数名实际上是一个指向函数对象的指针,不会与某个函数绑定。
7:什么是函数声明,声明是函数表达式。函数表达式和函数声明有什么不同?
    //函数声明
    function sum (){
      //.........
    }

  //函数表达式
  var sum = new Function ('num1','num2,"return num1+num2");

函数声明和函数表达式区别:解析器会率先读取函数声明,并使其在执行之前就可以访问。至于函数表达式,必须等到解析器执行到他所在的代码行,才会真正被解析。

注意!!函数是对象,函数名是指针

8:简介arguments?

arguments是函数内部的对象。他是一个类似数组的对象,包含着传入函数中的所有参数。
argument有一个callee属性,该属性是一个指针,指向拥有这个arguments对象的函数
如:

//这段代码函数的执行与函数名factorial紧紧耦合,
function factorial(num){
  if(num<=1){
    return 1;
  }else{
    return num*factorial(num-1);
  }
}

//为消除这种耦合现象。我们可以使用auguments.callee
function factorial(num){
  if(num<=1){
    return 1;
  }else{
    return num*argumens.callee(num-1);
  }
}
9:this是什么鬼?

this是函数内部的一个特殊的对象。this引用的是函数根据以执行的环境对象。(如在网页的全局对象中调用函数时,this对象引用的就是window)

10:caller是什么?

caller是函数的一个对象的属性。这个属性中保存着调用当前函数的函数引用。

function outer(){
    inner();
}

function inner(){
alert(inner.caller);
}

outer();  \\显示outer函数源代码
11:apply和call有什么区别。他们的作用是什么?

每个函数都包含两个非继承而来的方法。这个方法的用途

apply():接受两个参数,一个是在其中运行函数的作用域,另一个是参数数组
call():第一个参数是this,剩余的所有值都是直接传递给函数。在使用call()时,传递给函数的参数必须逐个列举出来。

function sum(num1,num2){
  return num1+num2;
}

function callSum(num1,num2){
  return sum.apply(this,argumens); //传入arguments对象
}
function callSum2(num1,num2){
  return sum.apply(this,[num1,num2]);
}
function callSum3(num1,num2){
  return sum.call(this,num1,num2);
}

注意:严格模式下,未指定环境对象而调用函数,则this值不会转型为window。

apply和call可以扩充函数的作用域。

window.color = 'red';
var o = {color:'bule'};
function sayColor(){
  alert(this.color);
}
sayColor(); //red
sayColor.call(this); //red
sayColor.call(window); //red
sayColor.call(o);//blue
12:什么是基本包装类型?

为了便于操作基本类型值,ECMAScript还提供了3个特殊的类型:Boolean、Number、String

13:引用类型和基本包装类型有什么区别?

生存周期不同。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于代码执行的瞬间,然后立即被销毁。这意味我们不能再运行时为基本类型值添加属性和方法。

14:什么是单体内置对象?

内置对象是由ECMAScript实现提供的、不依赖于宿主环境的对象。这些对象在ECMAScript程序执行之前就已经存在了。意思就是说开发人员不必显示的实例化内置对象。因为他们已经实例化了。如:Object 、Array、String。
单体内置对象:Global和Math

相关文章

  • JavaScript基础问答(一)

    1:什么是引用类型? 2:JavaScript中有哪几种引用类型? 3:请说出基本类型值有哪些? Undefine...

  • Golang Gist

    概念讲解 基础概念 基础问答 基础问答 编码能力考查x

  • 第14天,JavaScript

    第14天,JavaScript @(前端基础)[JavaScript] 目录 一、JavaScript基础 一个完...

  • 任务19作业

    问答 基础类型有哪些?复杂类型有哪些?有什么特征? 在javascript中基本类型值(数值、布尔值、null和u...

  • 时间对象、引用类型

    一、问答题 基础类型有哪些?复杂类型有哪些?有什么特征?JavaScript变量可能包含两种不同类型的值:基本类型...

  • javaScript 基础知识

    javaScript 基础知识 一 JavaScript概述 JavaScript概述 JavaScript是客户...

  • JS-Basic

    本文主要结构 任务JavaScript基础练习JavaScript集合练习 JavaScript基础练习学到的主要...

  • JavaScript-01

    A 什么是JavaScript JavaScript 定义JavaScript JavaScript基础语法 常用...

  • iOS基础问答面试题连载-附答案

    iOS基础问答面试题连载-附答案 iOS基础问答面试题连载-附答案

  • Js全局变量和局部变量

    //结果: Javascript语言基础 //结果: Javascript语言基础 //结果:Javascri...

网友评论

      本文标题:JavaScript基础问答(一)

      本文链接:https://www.haomeiwen.com/subject/nwxvwttx.html