演示代码下载(gitee):
https://gitee.com/zhaodave/jsdemo.git
2.1Js中使用typeof能得到的哪些类型?
undefined;对未经声明的变量或声明后未赋值的变量会返回undefined
boolean;true
string;’abc’
number;123
object;检测null值(因为表示空对象指针),对象,数组会返回object
function;
变量计算-强制类型转换
字符串拼接
Var b = 100 + ‘10’
==运算符
100 == ‘100’;0==’’;null==undefined
If语句
If中是false的情况除undefined和false本身:
if(0){}
if(NaN){}
if(''){}
if(null){}
逻辑运算(与或非)
2.2何时使用===和==?
三等没有类型转换;
比较过程:
双等号==:
(1)如果两个值类型相同,再进行三个等号(===)的比较
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
1)如果一个是null,一个是undefined,那么相等
2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较
三等号===:
(1)如果类型不同,就一定不相等
(2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN, 只能使用isNaN( ) 来判断)
(3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
(4)如果两个值都是true,或是false,那么相等
(5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等
(6)如果两个值都是null,或是undefined,那么相等
2.3js中有哪些内置函数?
Object类型:
为新对象定义了默认的属性和方法
方式:
var person = new Object() ;
var person = {
name: "dave",
sex: "girl"
}
var person = {}
Array类型:
concat 返回一个由两个数组合并组成的新数组。
join 返回一个由数组中的所有元素连接在一起的 String 对象。
pop 删除数组中的最后一个元素并返回该值。
push 向数组中添加新元素,返回数组的新长度。
shift 删除数组中的第一个元素并返回该值。
unshift 返回一个数组,在该数组头部插入了指定的元素。
sort 返回一个元素被排序了的 Array 对象
reverse 返回一个元素反序的 Array 对象。
slice 返回数组的一个片段。
splice 从数组中删除元素。
Date类型:
getYear() 返回年份(2位或4位)
getFullYear() 返回年份(4位)
getMonth() 返回月份 0-11
getDate() 返回日期 1-31
getDay() 返回星期数 0-6
getHours() 返回小时数 0-23
getMinutes() 返回分钟数 0-59
getSeconds() 返回秒数 0-59
getMilliseconds() 返回亳秒数0-999
基本包装类型:Boolean,Number,String
Boolean
Number
String:
length属性:长度
concat 方法(String)连接两个或更多个字符串。
indexOf(string) 返回出现字符串的位置
substr(num1,[num2])截取字符串
toLowerCase() 转换成小写
toUpperCase() 转换成大写
replace(str1,str2) 字符串替换
单位内置对象:Math,Global
Math:
ceil(数值) 大于或等于该数的最小整数
floor(数值) 小于或等于该数的最大整数
min(数值1,数值2) 返回最小值
max(数值1,数值2) 返回最大值
pow(数值1,数值2) 返回数值1的数值2次方
random() 返回随机数 0---1
round(数值) 四舍五入
sqrt(数值) 开平方根
Regexp类型:
Function类型:
Error类型:
2.4js变量按照存储方式区分为哪些类型,描述其特点?
变量类型和计算:
变量类型:值类型和引用类型;typeof运算符。
常用的引用类型:对象、数组、函数。
特点:
(1)值类型:1、占用空间固定,保存在栈中(当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁了。因此,所有在方法中定义的变量都是放在栈内存中的;栈中存储的是基础变量以及一些对象的引用变量,基础变量的值是存储在栈中,而引用变量存储在栈中的是指向堆中的数组或者对象的地址,这就是为何修改引用类型总会影响到其他指向这个地址的引用变量。)
2、保存与复制的是值本身
3、使用typeof检测数据的类型
4、基本类型数据是值类型