• PPK谈JS笔记第一弹


    以下内容是读书笔记,再一次温习JS好书:PPK谈JS

    window.load=initializePage
    addEventSimple('window','load',function(){})

    load事件在页面被完成加载时触发,显然这正是我们初始化脚本所需要的。
    问题是如果同时批量初始化,可能会发生替换,最后的赋值会替换前面的。


    js
    变量名,方法名等区分大小写
    使用分号作为语句分隔符
    注释是// /**/
    代码块使用{}

    undefined null
    undefined:
    你访问了一个对象不存在的属性或方法,
    你访问一个没有赋值的变量

    显示对象的数据类型:typeof
    NaN not a number 表示非数字值
    发生在试图把一个非数字的对象(字符串)转为转成数字的时候

    JS处理字符串连接的优先级高于数学求和。

    = == ===
    == 比较运算符 返回布尔值 true or false

    if(4)...
    除了0和NaN之外的其他数字都转化为了true

    === 严格比较运算符
    要求比较的两个对象值相等,数据类型也相同时才返回true
    == 表示两个对象的值相等,数据类型可能不相同,如一个是数字一个是字符串
    ==== 表示丙个对象的是否是同一个, 要求数据类型相同,而且值也相同

    变量就是保存值的容器
    JS开发中习惯以驼峰命名格式来命名较长的变量或函数名,因为这样更容易阅读。
    名字以小写字符开头,但是接着每一个新单词的首字母都使用大写。
    W3C DOM使用相同的命名约定,如getElementById/TagName

    优秀的编程实践是尽可能地使用局部变量,这样可以防止变量之间相互干扰。即使他们拥有相同的名字。
    在函数体中使用VAR来声明变量,或者作为参数变量在函数定义中出现的变量都是局部变量,
    其他的任何方式声明的变量都是全局变量。
    局部变量和全局变量的优先级呢?在函数中,局部变量的优先级高于全局变量

    注意在JS中小数的运算有精度有问题,请注意,如简单的2.1*3并不是6.6,而是还有后缀,
    所以需要使用(2.1*3).toFixed(1))来将数字转为拥有固定小数位数的字符串。
    使用Math.round() Math.floor() Math.random 生成一个0到1之间的随机数。

    parseInt(3 +'abc')
    parseFloat(3.65 +'abc')
    会返回合法的数字值,有一定的用途

    字符串属性
    indexOf 如果查找不到,返回-1,如果找到,返回的是其出现的位置,从0开始算起。

    var evtTarget=evt.target ||evt.srcElement;
    如果evt.target存在,JS发现第一个表达式的值是真,则不计算后面的,返回的就是evt.target对象。
    不是布尔true.

    var test = new Object();
    test.a=2;
    test.b='2';
    test.c=function(){console.log(test.a*test.b);}
    test.c()

    var test2 = {
    a:2,
    b:'2',
    c:function(){
        console.log(this.a*this.b);
    }
    }

    this它总是引用定义该方法的对象。
    客户端(浏览器中)使用window作为全局对象,而全局变量就是定义在window上的属性。
    object.property
    object['property']
    是等价的,property替换成method也是同样的效果。


    关联数组
    var arr=new Object();
    arr["name"]="student";
    arr["age"]=20;
    arr["sex"]="male";
    console.log(arr);

    for (var item in arr){
    console.log(item)
    }

    数组
    var a1=[];
    a1.push(1);
    a1.push(2);
    console.log(a1)
    console.log(a1.pop())

    数组有push,pop,shift and unshift 四个方法,前两个是从尾部对数组元素进行增删,后两个是从头部进行相同的操作。

  • 相关阅读:
    [Leetcode 11] 112 Path Sum
    [Leetcode 14] 7 Reverse Integer
    [Leetcode 12] 126 Word Ladder II TO_BE_ADDED
    [Leetcode 13] 1 Two Sum
    [Leetcode 7] 101 Symmetric Tree
    [Leetcode 9] 110 Balanced Binary Tree
    [Leetcode 15] 8 String to Integer (atoi)
    [Leetcode 8] 104 Maximum Depth of Binary Tree
    [Leetcode 16] 9 Palindrome Number
    [Leetcode 10] 111 Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/5988157.html
Copyright © 2020-2023  润新知