js学习笔记

1、js最厉害的是对html增删改查。js不逊色于c、java。jquery、node.js基于js,jQuery是js一个封装的工具,简化js的代码量。

2、js的三大部分:ECMAScript、DOM、BOM

3、字符串加其他类型的数据等于字符串。“a”+1+1=“a11” 1+1+“a”+1+1="2a11"自左向右 1+1+“a”+(1+1)="2a2"括号改变运算的优先级

4、js换行,document.write("
");

5、逻辑运算符&&(碰到假,或者到了最后一个就停,返回当前的结果),1&&6 表达式1为1,为真,把第二个表达式2返回。
0&&6 表达式1为0,为假,直接返回第一个表达式0

                       1&&true    表达式1为1,为真,把第二个表达式true返回
       逻辑运算符&&一般用于短路语句,比如 2 > 1 && document.write("hello wrold");   这里表达式1为真,直接返回表达式2的结果

6、逻辑运算符 ||(碰到真,或者到了最后一个就停,返回当前结果)

7、逻辑运算符 ! 把当前表达式转换成bool值,再取反。undefined null NaN “” false的bool值为假

8、浏览器弹出输入窗口window.prompt(‘input’);

9、js和java挺像的,只是js的输出语句是document.write();

10、对象 var object_name={lastName:“Deng”,age:40,sex:undefined,wife:“xiaohua”,handsome:false}

11、查看变量的数据类型 typeof(变量)

12、数据类型转换 var num=Number("-123");

13、将某个数或者数字的字符串取整 parseInt(某个数) parseInt(某个数,进制)parseInt(“123.3abc”)程序只能看到数字位123.3,到非数字位截止。

13、类型转换Number() String() Boolean() parseInt(String,radix) parseFloat(string) .toString()

14、isNaN()判断某个数是不是数字

15、!== 绝对不等于

16、num.toFixed(n) 数字num保留n位有效数字

17、js和c不一样,js中 document.write(函数名); 会打印出函数体

18、返回值语句 return + 要返回的值

19、js进行三部曲 : 语法分析、预编译、解释执行

                           其中预编译阶段,有四步:1、创建AO对象  (Activation Object  执行期上下文,发生在函数内部)
                                                                   2、找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
                                                                   3、将实参值和形参值统一
                                                                   4、在函数体里面找函数声明,值赋予函数体

                          全局变量/函数声明的编译过程:1、创建GO    (globe object  , 其实就是window)

20、暗示全局变量,即任何变量,未经声明就赋值,此变量为全局变量(即window)所有;一切声明的全局变量,全是window的属性

21、作用域
[[scope]] : 每个js函数都是一个对象,对象有些属性我们可以访问,有些不可以(供js引擎存取,比如[[scope]],作用域,存储运行期上下文的集合)
作用域链 :[[scope]]中所存的执行期上下文对象的集合,这个集合呈现链式链接,我们呢把这个链式链接叫做作用域链
执行期上下文 :一个对象,当函数执行的时候,会创造一个叫执行期上下文的内部对象。一个执行期上下文定义了一个函数执行时的环境。函数每次执行时对应的执行上下文都是杜伊无二的。所以调用多个函数会创建多个执行期上下文。当函数销毁,它所执行的上下文被销毁。
查找变量 :从作用域的顶端依次往下查找。

22、假如name是obj的某个属性 ,则 obj.name 和 obj[name]它们一个意思 , 而且后者效率更高,因为前者要转化成后者执行。后者有很多的用途

23、改变原数组push pop shift unshift sort reverse splice
不改变原数组 concat join split toString slice

    数组排序          升序    arr.sort(function(a,b){
                                            if(a>b){
                                                     return  a-b;}
                                            else{
                                                      return  -1;}
                                        })

                          简写的方式

                          升序    arr.sort(function(a,b){
                                                     return  a-b;
                                        })

                           降序

                          简写的方式

                                    arr.sort(function(a,b){
                                                     return  b-a;
                                        })

24、arguments是类数组,不是数组

25、document代表整个文档 document.getElementById() document.getElementsByClassName() document.getElementsByTagName() document.querySelector() document.querySelectorAll()

26、遍历节点树 parentNode 父节点(最顶端的parentNode为#document)
childNodes 子节点们
firstChild 第一个子节点
lastChild 最后一个子节点
nextSibling 后一个兄弟节点
previousSibling 前一个兄弟节点
27、基于元素节点树的遍历 parentElement 返回当前元素的父元素节点(IE不兼容)
children 只返回当前元素的元素子节点
node.childElementCount===node.children.length当前元素的子元素节点个数(IE不兼容)
firstElementChild 返回第一个元素节点(IE不兼容)
lastElementChild 返回第一个元素节点(IE不兼容)
nextElementSibling / previousElementSibling 返回后一个 / 前一个兄弟元素节点(IE不兼容)

28、js读写css
var div=document.getElenmentByTagName(‘div’)[0];
div.style.height=“300px”;

                     .active{  }                div.className="active";//比刚刚上面的效率跟高

                    //查询计算样式,只读,返回的值是绝对值,IE8及以下都不兼容
                    window.getComputedStyle(ele,null);

29、事件


等同

                  <script> var div=document.getElementByTagName('div')[0];    
                                div.addEventListener('click',function(){console.log('a');},false) ;//attachEvent和addEventListener差不多,只有一点点区别
                                div.addEventListener('click',function(){console.log('b');},false) ;
                 </script>    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值