JavaScript 初学介绍

面试

1.JS是什么?

    JavaScript: 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,
最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 
    组成:ECMAScript + DOM + BOM

other

1.JS是专门为网页交互而设计一个弱类型脚本语言,弱类型即数据类型可以被忽略的语言,一个变量可以赋予不同数据类型;
的值,脚本语言即直接运行而不需要编译的语言
2.JS由web浏览器进行解释和执行;
3.JS是由BOM(浏览器对象模型)和DOM(文档对象模型)在ECMAScript的规则下组成的语言.

2.JS的数据类型有哪几种,哪些是简单类型变量,哪些是复杂类型变量,它们有什么区别?

js的数据类型分为两种:简单(基本)数据类型,复杂(引用)数据类型
          /* (1)--简单数据类型:
           * 1、number(数字类型)
           * 2、string(字符串类型)
           *    用双引号"" 或者单引号'' 或者反单引号``括起来的内容就是字符串(其中单双引号没有区别)
           * 3、Boolean(布尔值),只有两个值:true,false
           * 4、undefined,只有一个值:undefined
           * 5、null,只有一个值:null
           * 6、symbol:表示唯一的值

           * (2)--复杂数据类型:
           * object(对象)
           */
            
区别:
    1、基本数据类型把数据名和值直接存储在栈当中;
而复杂数据类型在栈中存储数据名和一个堆的地址,在堆中存储属性及值,访问时先从栈中获取地址,再到堆中拿出相应的值。
    2、基本数据类型作为参数时,函数内部对参数值的修改不会改变外部变量的值;
复杂数据类型作为参数时,函数内部对参数值的修改会改变外部变量的值。

other

基本数据类型有undefined、null、Boolean、number、string
复杂数据类型为object(function,array)
基本类型变量存的是值,复杂类型的变量存的是内存地址

3.用代码来表示具体如何定义JS的各种类型变量?

五大常用知识:字符串、数字、布尔、Undefined、Null / 
三大引用类型:函数、对象、数组
          var x = 123;
          var y = "123";
          var z = true;
          var k = undefined;
          var j = null;
          var i = new Object();
          var p = function(){}
          var q = new Array();

4.undefined和Null的区别?

undefined:已经声明变量,但没有赋值;
Null:连变量都没有声明
    1、undefined表示一个变量没有被声明,或者被声明了但没有被赋值(未初始化),
一个没有传入实参的形参变量的值为undefined,如果一个函数什么都不返回,则该函数默认返回undefined;
       null是一个表示“没有值”的值;
    2、Javascript将未赋值的变量默认值设为undefined;而从来不会将变量设为null。
它是用来让程序员表明某个用var声明的变量时没有值的;
    3、undefined不是一个有效的JSON,而null是;
    4、undefined的类型(typeof)是undefined;null的类型(typeof)是object. ;
    5、都是基本类型;都是falsy (Boolean(undefined) ->// false, Boolean(null) ->// false);
    6、判断一个变量是否是undefined。typeof variable === "undefined";
判断一个变量是否是null。variable === null;
    7、双等号比较时它们相等(null==undefined ->// true),
但三等号比较时不相等(null===undefined ->// false);

5.script标签写在页面头部和底部,有何区别?

    加载页面时,按照文档流的方向读取,由于JS文件过大,可能会阻塞文档解析,出现白屏的页面;
    由于JS需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,所以建议放在底部。

6.如何保证在页面基本结构和样式加载后,再执行我们的JS脚本

    window.onload=function(){...}

7.如何判断一个变量是属于哪种变量类型(字符串、数值、布尔值、Null、undefined、对象、数组、函数)?

    console.log(typeof 变量)
    console.log(Object.constructor.toString.call(obj).ceil(8,-1))

8.JS的注释写法有哪几种,有何区别?

第一种:"//" 单行注释 可相互嵌套;第二种:/ ** / 多行注释 不可嵌套

9.javascript引入页面有几种形式

三种:
 * 1、通过script标签来书写js代码
 * 2、通过行内书写js脚本
 * 3、通过script的src属性引入外部js脚本

10.var 的意义何在

变量声明提前

11.JS 加载属性

当页面加载完成后才执行js脚本:
        1、window.onload:
        
        2、defer:延迟 => 当引入多个外部脚本的时候,会按照引入的顺序来执行js脚本的,但是在实际操作中不一定按顺序执行,因为每个浏览器不同。
        
        3、async:异步 => 当引入多个外部脚本的时候,不一定按照引入的顺序来执行js脚本。
        
        defer 和 async 只对外部脚本有效***

        

笔试

1.已知数A与B,由键盘输入AB的值,交换它们的值,并输出。

      
···

你可能感兴趣的:(JavaScript 初学介绍)