js学习笔记吧

  • 弱类型,都用var声明,可以随时改变变量所存数据的类型
  • 逻辑欲火

true || 6; 逻辑或短路,左边为ture返回右值;
6 && true; 逻辑与短路,左边false返回右值;

  • 形参和实参

定义函数时,function funcA(a,b,c){},其中的a、b、c即为形参;
调用函数时,funcA(1,2,3);其中的1、2、3即为实参;

  • 短路运算
    作用:防止传入函数的数据不足,造成无法运行;

    eg:
    function getResult(a,b,fn) {
    fn && fn();
    }(通常使用逻辑与的短路来决定是否执行回调函数;)
    function getResult_2(a,b){
    a || 0;
    }(通常用逻辑或的短路来防止实参不足的情况,强行赋值;)

  • 自执行函数

    (function func2(){
    })()
    tips:在函数定义的结束最后写入一个(),该函数定义完成后直接被调用执行;

  • (Math)数学对象

向上取整        Math.ceil(number);
向下取整        Math.floor(number);

四舍五入        Math.round(number);

求多个数字之间的最大值     Math.max();
求多个数字之间的最小值     Math.min();

求x的y次幂      Math.pow(x,y);

求正弦值            Math.sin(x);
    example:
        求一个角度的正弦值,要求x必须是一个额弧度值
        角度和弧度的转换公式:
            弧度 = 角度 * 2 * Math.PI / 360;

        Math.sin(30*2*Math.PI/360)

Math.abs(x);    得到一个数字的绝对值
  • 每行结尾的分号可有可无
  • 注释
单行注释以双斜杠开头(//)
多行注释以单斜杠和星号开头(/*),以星号和单斜杠结尾(*/)
  • 用同一个 var 语句定义的变量不必具有相同的类型

var test = "hi", age = 25;

  • ECMAScript 关键字的完整列表 { 如果把关键字用作变量名或函数名,可能得到诸如 "Identifier Expected"(应该有标识符、期望标识符)这样的错误消息 }
break
case
catch
continue
default
delete
do
else
finally
for
function
if
in
instanceof
new
return
switch
this
throw
try
typeof
var
void
while
with
  • ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String

Undefined 类型: 唯一值 undefined,未初始化(可以是声明的也可以是未声明的)
Null 类型: 唯一值null,尚未存在的对象,null == undefined--->true

  • typeof xxx : 输出xxx的类型
  • 八进制用0开头,十六进制用0x开头
  • 特殊Number

Number.MAX_VALUE 参与运算的最大值
Number.MIN_VALUE 参与运算的最小值
Number.POSITIVE_INFINITY 值:Infinity,正无穷,只能是计算结果
Number.NEGATIVE_INFINITY 值 :-Infinity,负无穷,不能参与运算
NaN (Not a Number)
alert(isNaN("blue")); //输出 "true"
alert(isNaN("666")); //输出 "false"
isFinite() 判断是否无穷大

  • 一元运算符

delete:删除对以前定义的对象属性或方法的引用,未定义的和系统原来的属性和方法不能删除
void:返回 undefined
前增量/前减量运算符: 先计算后赋值
后增量/后减量运算符: 先赋值后计算

  • 位运算 (0 表示正数,1 表示负数)

位运算 NOT(~)
步骤:转成32位,生成反码,转化然后-1;
位运算 AND(&) :同1为1,其他为0
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
AND = 0000 0000 0000 0000 0000 0000 0000 0001
位运算 OR(|):同0为0,其他为1
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
OR = 0000 0000 0000 0000 0000 0000 0001 1011
位运算 XOR 由符号(^):不同为1,相同为0
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
XOR = 0000 0000 0000 0000 0000 0000 0001 1010
左移运算由两个小于号表示(<<):数字中的所有数位(保留符号位)向左移动指定的数量
有符号右移运算符由两个大于号表示(>>)
无符号右移运算符由三个大于号(>>>)负数将会变成很大的正数

  • false 转换成 0,true 为 1

  • 等号和非等号 == ;!= .如果有数字,另一个转成数字;如果有字符串,另一个转成字符串,,,数字优先级高于字符串

  • 全等号 === 。需要先比较类型,只有在无需类型转换运算数就相等的情况下,才返回 true。

  • for-in 语句 ,严格的迭代语句,用于枚举对象的属性,,PropertyIsEnumerable() 检验是否可以用for-in

  • switch ,,可以用于字符串,而且能用不是常量的值

  • 函数不用写返回类型,而且reture不必在最后一句

  • arguments 对象

函数内接受参数的数组对象,可以判断实参个数及内容,长度小于等于形参,多余的舍去不要,少给的为undefinde

  • 函数其实是一个功能完整的对象,可以作为参数传递给其他函数,有名字的函数可以作为数据传递给另一个变量,函数有length和toString等方法,length返回形参个数,toString()返回整个函数源码
  • 用 new Function构造函数,
var sayHi = new Function("sName", "sMessage", "alert(\"Hello \" + sName + sMessage);");
前边是入参(必须是字符串),后边是函数执行
  • 对象声明:var name= new 对象();如果没有参数可以省略();
  • this , 指向调用该方法的对象
  • 对象的属性和方法是动态的,可以在对象创建之后动态增加
var obj=new Object
obj.name="hello"
obj.eat=function(){
console.log("我要吃肉肉")
}
  • 通过prototype可以给本地对象添加、修改、方法和属性
本地对象.prototype.方法名=function(){

}
  • js脚本,逐行读取,不是预编译
  • js 错误处理
try{
// 具体执行代码
}catch(error){
// 错误处理
}

if(false){
throw err
}
  • DOM(document object model)
document.getElementById("id") ;通过id获取元素
document.write();  左上角些东西
已知标签.innerHTML=""; 给已知的标签写或者修改东西
已知标签.属性名="" ;修改已知标签的对应属性值
// 通过已知标签获取子标签
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
// 修改样式
xxx.style.color='red'

  • alert() 警告框,confirm(),确认提示框,prompt()提示框

你可能感兴趣的:(js学习笔记吧)