1. opacity是半透明的意思 0.1 ~ 1 如opacity:0.5 ;
2. pageshow事件触发:,这个事件在页面显示时触发,无论页面是否来自缓存。在重新加载页面中,pageshow会在load事件触发后触发;根据事件对象中的persisted来判断是否是缓存中的页面触发的pageshow事件,注意这个事件给window添加。
3. overflow: auto; 添加滚动条
4. scroll是window下得滚动事件 当我们滚动条发生变化触发的事件
5. 百分比布局是动态得可以跟随浏览器而动
6. 一个标签被display:none隐藏了想鼠标经过显示 是给他的父元素设置:hover而不是他本身 因为他本身已经被隐藏掉了
7. 行内元素使用text- align不会居中的除非转为块元素
8. 使用text- align:centent居中必须得有宽度
9. undefined和defined得区别 undefined代表得是你定义了变量但是没有赋值得意思,而defined代表得是你没有定义变量,这个变量不存在。
10. `变量初始化的约定成俗
var sum = 0 代表着只是当前不知道存储什么数值 但是以后是要存储的数字。
var canName=' '代表以后存储一个字符串 。
var dog = null 代表这个dog变量以后要存储的是一个空的对象。
var isClose=true 代表以后存储的是一个boolean。`
11. NaN 再js中表示得是 不可表示得值或者是非数值类型
12. NaN == NaN 结果是false
13. 任何类型数据和NaN 比较大小都是false ( 包括自身)
1 > NaN
1 <= NaN
'1' > NaN
'1' <= NaN
NaN > NaN
NaN <= NaN
14. 任何数据类型和NaN 减 除 乘都是NaN 除去加号因为加号是拼接
15. 特殊情况:
当遇到null 的时候,会有特殊情况发生;
特殊情况:空字符串和null 不相等 ( '' == null ) false 因为null 虽然转换在数值上为0 但是他实际上是对象 对象和0 是不相等
特殊情况:false 和null 不相等 ( false == null ) false 因为null 虽然转换在数值上为0 但是他实际上是对象 对象和0 是不相等
特殊情况:0 和null 不相等 ( 0 == null ) false 因为null 虽然转换在数值上为0 但是他实际上是对象 对象和0 是不相等
特殊情况:undefined和null 相等 ( undefinde== null ) true 因为undefined和null 在某一层面上都表达为空的意思
16. 比较如果俩边都是字符串 比较的是字符串的Unicode码 如 ( 'asd' > 'kahsd' )
17. Number ( ) 强制将一个其他数据类型转化为数字类型,转不了就是NaN
18. console. log ( 1 / 0 ) ; Infinity
console. log ( 0 / 1 ) ; 0
console. log ( 0 / 0 ) ; NaN
19. var arr = [ 1 , 2 , 3 , 4 , 5 ]
20. continue 是立即跳出本** 次** 循环 跳到i++ 身上 再去执行下一次代码 continue 之后得代码就不会在运行了 而break 是立即直接跳出** 整** 个循环在 循环当中,跳出离它最近得那一层循环 简单理解break 在那个循环里面就跳出整个循环。如果是多层循环要注意
21. 数组里面得i代表得是对应数组元素里面得索引 ( 下标) 如arr[ i] 而循环得i代表得是计算器循环了多少次
20. 注意 什么是表达式 : 表达式是由变量或者运算符组成的 表达式是有值的 它会有一个返回值
21. for 循环当中的循环变量i 有两个作用, 1 、控制着循环的次数 2 、变量同时也是有值的;
22. for 循环还可以重复不同的代码,这主要是因为使用了计算器,计算器在每次循环过程中都会有变化。 比如第一次是1 那么第二次就是2 第三次就是3 依此类推
23. 凡是JavaScript语言中预期为值得地方,都可以使用表达式。比如,赋值语句得等号右边,预期是一个值,因此可以放至各种表达式
24. 加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload)。由于加法运算符存在重载,可能执行两种运算,使用的时候必须很小心。
'3' + 4 + 5
3 + 4 + '5'
由于从左到右的运算次序,字符串的位置不同会导致不同的结果。
除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载 ( 因为减法除法乘法带有隐式转换顾名思义就是在我们看不见得情况下偷偷转换) 。它们的规则是:所有运算子一律转为数值,再进行相应的数学运算。
1 - '2'
1 * '2'
1 / '2'
25. + 0 === - 0
26. 复合类型值
{ } === { }
[ ] === [ ]
( function ( ) { } === function ( ) { } )
结果都是不相等。原因是对于复合类型的值,严格相等运算比较的是,它们是否引用同一个内存地址,而运算符两边的空对象、空数组、空函数的值,都存放在不同的内存地址,结果当然是false 。不是比较它们的值是否相等
27. length属性是可写的,如果人为设置一个小于当前成员个数的值,该数组的成员数量会自动减少到length设置的值
var arr = [ 'a' , 'b' , 'c' ]
arr. length
arr. length= 2
上面代表表示,当数组的length属性设置2 总长度元素就是2 了那么后面超过的就会被删除掉
清空数组的一个有效方法,就是讲length属性设置为0
var arr = [ 'a' , 'b' , 'c' ]
arr. length= 0
如果人为设置length大于当前元素个数,则数组的成员数量会增加到这个值,新增的位置都是空位
28. 通常break 语句总是与if 语句联在一起满足条件跳出循环
29. window下的叫函数,在对象中的一个属性叫方法 所以在js当中方法就是函数,函数就是方法
30. 1. this 通常情况下在任何函数当中都会有this 关键字
2. this 本质是一个对象代表着调用这个函数或者方法的对象 ( 执行者)
3. 在函数当中,函数也可以叫做是window对象的方法因为这个函数是在window下的,在函数当中this 永远代表的是window除非你改变了this 指向、
4. 在事件当中,回调当中的this 代表的是事件对象
5. 在对象的方法当中 this 指向的是这个对象
6. 如果this 在构造函数当中使用那就代表的是实例化出来的对象
7. this 在函数当中指的是window而在对象当中指的是当前对象而在事件当中指的是当前事件
31. 什么是实例化?
实例化就代表的是一个对象,实例就是你new 的是谁就是谁的实例对象,比如 var obj2 = new Object ( ) 这里的obj2就是Object的实例对象 说简单点就是实例化对象就是你通过new 关键字创建出来的对象就是实例化对象
32.
如果存储一个简单的数据类型 ( 一个数字,一个字符串) 直接使用var
如果存储一堆的数据 此时我们想到数组 数组就是专门用来存储多个数据用的
如果我们想要执行一段代码,或者让这段代码有功能,此时我们需要函数
如果我想描述一个复杂的事物,比如说一个人,一台电脑 ( 需要用到多个属性或者方法才能描述清楚) ,此时就需要用到对象
33.
function person ( firstname, lastname, age, eyecolor)
{
this . firstname= firstname;
this . lastname= lastname;
this . age= age;
this . eyecolor= eyecolor;
}
1. 在JavaScript中,this 通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)
2. 创建 JavaScript 对象实例
一旦您有了对象构造函数这里的 ( person就是对象构造函数) ,就可以创建新的对象实例,就像这样:
var myFather= new person ( "John" , "Doe" , 50 , "blue" ) ; myFather就是person的对象实例
var myMother= new person ( "Sally" , "Rally" , 48 , "green" ) ;
34. 在构造函数中new 和不new 的区别:
如果 new 了函数内的 this 会指向当前这个 person 并且就算函数内部不 return 也会返回一个对象。
如果不 new 的话函数内的 this 指向的是 window。
function person ( firstname, lastname, age, eyecolor)
{
this . firstname= firstname;
this . lastname= lastname;
this . age= age;
this . eyecolor= eyecolor;
return [ this . firstname, this . lastname, this . age, this . eyecolor, this ]
}
var myFather= new person ( "John" , "Doe" , 50 , "blue" ) ;
var myMother= person ( "Sally" , "Rally" , 48 , "green" ) ;
console. log ( myFather)
console. log ( myMother)
35.
使用内置对象方法之前建议思考一下三要素:
第一要素他的功能是干什么的
第二要素它能传入什么参数
第三要素它返回的值是在原有的元素基础上操作的还是返回一个新元素
36.
行内块元素使用margin: 0 auto无效,对父级使用text- align:center即可
37. 重点
for 循环对多个对象添加事件的时候记住,当时for 循环只是添加了监听事件,而事件回调函数是不会去执行的事件回调函数当中的代码是在事件发生的一刹那执行的,但是此时,for 循环里面的计数器i早都已经执行完毕了,所以在事件函数当中只要出现了循环变量就肯定报错
38.
var red = Math. floor ( Math. random ( ) * 256 )
var green = Math. floor ( Math. random ( ) * 256 )
var blue = Math. floor ( Math. random ( ) * 256 )
this . style. backgroundColor = 'rgb(' + red + ',' + green + ',' + blue + ')'
39.
保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组,如果保存一个的完整信息呢?
为了更好地存储一组数据,对象应用而生;对象中为每项数据设置了属性名称,可以访问数据更语义化,数据结构清晰,表意明显,方便开发者使用。
就是花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法;{ } 里面采取键值对的形式表示
- 键:相当于属性名
- 值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)
对象的使用
对象的属性:对象中存储具体数据的“键值对”中的键称为对象的属性,即对象中存储具体数据的项。
对象的方法:对象中存储函数的“键值对”中的“键”称为对象的方法,即对象中存储函数的项。
访问对象的属性:对象里面的属性调用:对象. 属性名;对象里面属性的另一种调用方式:对象[ '属性名' ] , 注意方括号里面的属性必须加上引号。
调用对象的方法: 对象. 方法名 ( ) ;
变量、属性、函数、方法总结:
①变量:单独声明赋值,单独存在
②属性: 对象里面的变量称为属性,不需要声明,用来描述该对象的特征。
③方法:方法是对象的一部分,函数不是对象的一部分,函数是单独封装操作的容器。对象里面的函数称为方法,方法不需要声明,使用"对象.方法名()" 的方式就可以调用,方法用来描述该对象的行为和功能。
④函数: 单独存在的,通过"函数名()" 的方式就可以调用。
40
封装函数的思考三要步骤
1. 你封装的这个函数是什么具体功能
2. 考虑需不需要参赛
3. 要不要返回值
41.
回调函数的三要素
1. 函数是我们自己创建的
2. 函数我们没有调用
3. 函数系统自动执行了
42.
trim ( ) 这方法代表的是去除俩边的空格,输入框常用
43. toFixed ( ) 方法四舍五入取指定位数的小数点,当其中参数为0 时表示不留小数点