• 前端面试基础题


    • 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);
      
  • 相关阅读:
    Notepad++的ftp远程编辑功能
    Scapy脚本执行出现警告WARNING解决办法
    在文本域textarea里添加含换行的字符串
    Python打包成exe工具
    SQL字段数据类型集锦
    解决Python扩展: Unable to find vcvarsall.bat
    解决安装python第三方模块 'mnocygwin'报错的问题
    python安装wmi模块
    ubuntu设置本地软件安装源【DVD版】
    linux下expect安装
  • 原文地址:https://www.cnblogs.com/Scar007/p/7717137.html
Copyright © 2020-2023  润新知