- 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值是多少?为什么?
- 结果为NaNzhufengfalsenull9,undefined类型与任意类型进行加运算结果都是NaN,NaN再与"zhufeng"+false+null+9+[]运算,由于"zhufeng"是字符串类型,NaN会隐式调用toString方法得到NaN,后面相加依次调用toString方法 -参考: http://note.youdao.com/noteshare?id=42d841135510c2f033731abd7e67e1ef
- 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);