前端面试基础题

  • 1.js中几种数据类型?
    • 简单数据类型(基本数据类型):String Number Boolean Null Undefined
    • 复杂数据类型:Object
  • 2.var a=b=c=d=5是什么意思,如果接下来再写一句d=9,a,b,c值会有变化吗?
    • 初始化给a b c d 赋值为5.改变d后abc值不会改变,因为abcd都是值类型的变量,各自的值存在于自己的栈当中,当d变化了其他栈中值不改变
    • 栈:存储值类型数据(栈也叫一级缓存)>>>堆存储引用数据类型数据,在栈中存指向该堆内存地址的句柄(堆也叫二级缓存)

  • 3.var a=b=c=d=[1,2,3,4,5]是什么意思?如果接下来再写一句d[5]=9,abc值会发生变化吗?
    • 发生变化,a,b,c,d值都改为[1,2,3,4,5,9],因为 a b c d是引用类型,引用类型数据存在于堆当中,栈中存的指向堆的地址,初始化时,a b c d在各自的栈中指向的堆是同一个,该堆保存着[1,2,3,4,5], 当改变了堆中的值,其他对象跟着改变
  • 4.var n=(1,2,3),n的值是多少
    • n的值是3,n中保存着最后一次的赋值
  • 5.var a=b=c=d=[1,2,3,4,5]是什么意思?如果接下来再写一句d=[9],abc值会发生变化吗?
    • 不改变,因为对于d来说改变的是d栈中的地址,此时d指向的堆已经不是原地址,所以此时d与其他对象的值已经不同了
  • 6.如何判断变量的数据类型
  • 7.var str=true+11+null+9+undefined+"zhufeng"+false+null+9+[] str值是多少?为什么?
  • 8.在js中,[]和{}表示什么?
    • []表示数组,{}表示对象,这两种声明方式都是字面量方式,除了字面量方式还可用new Array及new Object来实例化
  • 9.语法i++,++i和+i是什么意思?
    • i++表示先赋值后运算,++i表示先运算后赋值,+i表示与i进行加运算
    • var i=1,b; b=(i++)+(i--)+(++i)+(--i) b的值是6
  • 10.什么是全局变量,什么是局部变量?是如何定义出来的?
    • 全局变量是在函数外部定义的变量,在js中全局变量属于window对象,其作用域是整个源文件,全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序运行完毕就释放.局部变量是相对于全局变量而言的,在特定过程或函数中可以访问的变量,作用域较小,当函数运行结束释放局部变量.在js中并没有明确局部变量的概念,是相对于其他编程语言来描述,高程中,变量分为全局变量和函数变量.
  • 11.什么是保留字,在定义变量是我们应该注意哪些?
    • 保留字是js中已经定义过的字,由于考虑其扩展性,一些保留字可能并没有应用到当前的语法中,这是保留字与关键字的区别.在定义变量时应避免与关键字或保留字重名.
    • 扩展:http://www.runoob.com/js/js-reserved.html
  • 定义变量名或方法 属性名,有什么规范原则吗?请说一说.
    • 1)变量:匈牙利命名法(首字母是变量类型)
类型前缀示例
Array a aNameList
Boolean b bVisible
Float f fMoney
Regexp re rePattern
Function fn fnMethod
- 2)函数:驼峰命名(第一个单词首字母小写,其他单词首字母大写如:function getClientName(){})
- 3)属性:驼峰命名
  • 13.html代码 css和js代码注释的写法?
    • html
    • css /注释/
    • js //注释(单行) 或/多行注释/
  • 15.循环语句有几种写法?用不同的写法写出九九乘法表?
    • for; while; do while;
  
  • 16.条件语句有几种写法,用不同的写法写出判断当天是星期几的方法
    • if switch
  
  • NaN是什么意思?这个值有什么特点?
    • NaN表示不是一个数,但是它本身是number类型
  • 17.switch中break return区别
  

switch循环中,break;是跳出switch,继续执行函数下面的代码,所以输出第二次a的值为 2; return 是 跳出 函数,所以输出第一次a的值为 1; 还有值得注意的是,不用 break的话 会发生击穿现象,会执行到下面的case;不用return 的话,调用的函数没有返回的值。

  • 18.求出数组中最大值 var a=[33,5,77,88,9,31,22];
    • alert(Math.max.app(null,a))
  • 19.给出删除li的正确方法.
  
  • 20.请使用javascript找出name='A'的内容,并用alert方法显示出来
  
  • 21.2012年的春节是2012年1月23日,请写一段代码,算出现在距离春节有多少天多少小时多少分多少秒
  
  • 22.写一个通用的整数随机取的方法,要求有两个参数,用来限定随机数的上限和下限,方法最终能返回这个符号条件的随机数.比如这个方法名叫fn,则fn(30,48)会返回一个介于30和48之间的一个整数(可以等于30或48);
  
原文地址:https://www.cnblogs.com/Scar007/p/7717137.html