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()提示框
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,150评论 0 13
  • 1.Object.prototype 2.Object.assign() Object.assign() 方法用于...
    范晓坤阅读 154评论 0 0
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,960评论 17 410
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,993评论 6 13
  • 话说每个人在投胎阳世前,都要在阴司过几道关口,其中一道便是孟婆桥。人走到孟婆桥前,都要喝一瓢孟婆手里的忘情水,把前...
    燎原_ade6阅读 155评论 0 1