字符串使用单引号’abc’。(双引号也行。推荐;html→双引号,js→单引号)
===严格等于、!==严格不等于
if(x)  当x为undefined、null和0的时候都为false;需注意当x为0的情况容易忽略, 当x未声明的时候会报错 必须要用typeof(x)!='undefined'
定义变量不使用var即表示该变量是全局变量 他归属于Window对象,在<script></script>之间直接定义的变量也属于全局变量,一个页面中多个<script></script>中的全局变量可以互相访问(归属于window),全局的变量在页面关闭或者浏览器关闭的时候才被释放掉,js也有垃圾回收机制会定时执行垃圾回收当一个变量不需要使用的时候赋值为null就会被回收掉。

js变量重复定义后面定义的变量会覆盖前面定义的变量。
js变量没有块级作用域:即是在函数中定义的变量没有层级关系,只用在函数中定义的在整个函数内都有效的而且遵循重复定义会覆盖。如:输出的都是3.。。。function test() {var i = 1;if (1) { var i = 2;  if (2) { var i = 3;  alert(i);} alert(i);} alert(i);}
js中switch判断时,是“全等于”,===
js函数中没有写return的返回值都是undefined。
js函数可以动态的传入参数,通过argument.length获得传入的参数个数,arguments[index]获得参数值.函数不存在方法重载
js同名方法会覆盖,不存在重载所以参数不同方法名相同的函数仍然会覆盖.

js的类型转换:
parseInt(arg)         将字符串转换为整形转换失败返回NaN
parseFloat(arg)       将字符串转换为浮点数换失败返回NaN
Number(value)         将给定的value(可以是任何类型)转换为数值换失败返回NaN TRUE转换为1,false转换为0
String(value)          将给定的value转为字符串和tostring() 一样 但当value为null和undefined时value.tostring()会报错,String(value)则直接返回null或undefined。
Boolen(value)          将给定的value转为boolen类型值,undefined、null、0、''空字符串的boolen值都为false

关于函数:
1、functions test(a,b){return a+b;}  js函数不需要生命函数的返回值和参数的类型,如果方法体有return则返回指定值,如果没有写明return该方法都将返回undefined
2、funciton没有重载,但可以动态的传递参数,在函数中可以通过arguments.length获得参数个数和arguments[index]获取参数值。
3、同名函数会覆盖之前的函数。
4、匿名函数:a、var fuc1=function(a,b){return a+b;}调用fuc1(2,2);  b、直接什么并调用 (function(a,b){return a+b;})(2,2)  
             c、var fuc2=new function('a','b','return a+b');  调用fuc2(2,2);
            
关于js模拟面向对象:
1、方法就是一个对象:function person(){}      var p=new person();   p.name='动态添加属性';   alert(p.name);/alert(p['name'];
2、闭包 简单的理解就是在函数(“外部函数”)中又定义了函数(“内部函数”),并且可以在“外部函数”之外,使用“内部函数”。function test(y) {return function (x) { return x * 2; } (y);} 调用:alert(test(5));
3、js对象可以采用this(动态的添加属性),function person(name,age){this.Name=name;this.Age=age;}   var p=new person('tom',18);  alert(p.Name);/alert(p['Name'];
4、对象中还可以定义方法,可看作c#中类中定义方法。
5、也可以直接 var obj=new Object();  obj.name='动态添加类属性'; obj.fuc=function(){};  创建类/对象。
6、可以可以 var boj={};  obj.name='动态添加类属性'; obj.fuc=function(){};  创建。

String对象相关的方法:
length属性:获取字符串的字符个数。(无论中文字符还是英文字符都算1个字符。)
charAt(index)方法:获取指定索引位置的字符。(索引从0开始)
indexOf(‘字符串’,startIndex)方法:获取指定字符串第一次出现的位置。startIndex表示从第几个开始搜索。
split(‘分隔符’,limit);//根据分隔符将一个字符串返回为一个数组。limit表示要返回的数组的最大长度(可自定义)。多个分隔符使用正则表达式:var msg = 'a★b★c☆d☆e#f';var vals = msg.split(/☆|★|#/);alert(vals);
substr(startIndex,len)//从startIndex开始,截取len个字符。
substring(startIndex,stopIndex)//从startIndex开始,截取到stopIndex位置(不包括stopIndex所在的字符)。
toUpperCase()//转换大写、toLowerCase();//转换小写
match()、replace()、search()方法,正则表达式相关
正则的定义:var reg=new RegExp("\\w+");/var reg=new RegExp('\\w+','g');/var reg=/\w+/g;    g:全部匹配,i:不区分大小写匹配。

关于Array:
1、var arr=new Array(); arr[0]='为数组赋值'; arr[1]=123;  遍历用for(var i=0;i<arr.length;i++){alert(arr[i]} or  for(var item in arr){alert(’item为key‘);}
2、var arr=['为数组赋值',123]; 遍历用for(var i=0;i<arr.length;i++){alert(arr[i]} or  for(var item in arr){alert(’item为key‘);}
3、var arr=new Array('为数组赋值',123);   遍历用for(var i=0;i<arr.length;i++){alert(arr[i]} or  for(var item in arr){alert(’item为key‘);}
4、Array可以当dictionary使用 : var arr=new Array(); arr['人']='REN';     alert(arr.人); 遍历用for(var i=0;i<arr.length;i++){alert(arr[i]} or  for(var item in arr){alert(’item为key‘);}
5、dictionary的简写:var arr = {“人”:”ren”,“口”:”kou”} 这种简写的length为0只能用forin来遍历通过key来访问到值。 遍历用for(var item in arr){alert(’item为key‘);}
6、arr.join('连接符'); 用连接符连接数组的各个值。不添加连接符默认逗号隔开。
7、arr.reverse(); 数组反转,发回的结果为[123,'为数组赋值']
8、arr.sort();排序,默认从小到大排序。可以传入一个方法规定排序方式   arr.sort(function(a,b){return b-a;} 倒叙排列

扩展方法:
通过类对象的prototype设置扩展方法,下面为String对象增加quote(两边加字符)方法
String.prototype.quote = function(quotestr) {if (!quotestr) {quotestr = "\"";}return quotestr + this + quotestr;};
扩展方法的声明要在使用扩展方法之前执行。JS的函数没有专门的函数默认值的语法,但是可以不给参数传值,不传值的参数值就是undefined,自己做判断来给默认值。

js学习、备忘的更多相关文章

  1. Android学习备忘笺01Activity

    01.设置视图 在Android Studio新建的项目中,通过 setContentView(R.layout.activity_main);方法将res/layout/activity_main. ...

  2. leaflet 学习备忘

    leaflet 开源js地图工具.非常好用. leaflet参考:http://leafletjs.com/ 特性: 完全开源,可以基于不同的第三方瓦片生成地图. 基于原始GPS,无需转换 可创建离线 ...

  3. UML学习备忘

    两大类UML图: 行为图(behavior diagrams)和结构图(structure diagrams)     行为图将引导系统分析员分析且理清"系统该做些什么"?系统分析 ...

  4. Git学习备忘

    本文参考廖雪峰写的精彩的git学习文档,大家可以直接去官网看原版,我这里只是便于自己记录梳理 原版地址:http://www.liaoxuefeng.com/wiki/0013739516305929 ...

  5. MVC4 学习备忘

    WebConfig文件里添加数据库链接字符: <add name="MovieDBContext(可以自己取字符串名字)" connectionString="Da ...

  6. 一滴一点vim(学习+备忘)

    普通模式: h j k l 分别是左下上右方式移动: :w 保存修改 :q 推出 :wq 保存修改并退出 :q! 放弃修改强制推出 x 删除光标所在位置字符 i 在光标所以位置插入字符 删除类命令: ...

  7. JavaScript学习备忘

    1.您只能在 HTML 输出流中使用 document.write 如果在文档已加载后使用它(比如在函数中),会覆盖整个文档 2.数组 : [40, 100, 1, 5, 25, 10] <== ...

  8. JS判断备忘

    快速引入jquery并显示重点内容 (function(d,j,s,t){t=d.body.appendChild(d.createElement("script"));t.onl ...

  9. js菜鸟备忘

    1.图片切换 function changeImage() { var img = document.getElementById("myImg"); ")) img.s ...

  10. vue2.0 mintUI 学习备忘

    一 技术栈:vuecli+vuejs2+mintUI+axios vuecli :脚手架工具 vuejs:前端框架  mintUI:基于vuejs移动端UI  axios:vuejs ajax数据交互 ...

随机推荐

  1. TCHAR和CHAR类型的互转

    http://blog.csdn.net/ahjxly/article/details/8494217 http://blog.csdn.net/b_h_l/article/details/75815 ...

  2. 字符串格式化(七)-format

    print("i am %s" %'admin') # i am admin msg = "i am %s" %'Alex' print(msg) # i am ...

  3. 基于pycaffe的网络训练和结果分析(mnist数据集)

    该工作的主要目的是为了练习运用pycaffe来进行神经网络一站式训练,并从多个角度来分析对应的结果. 目标: python的运用训练 pycaffe的接口熟悉 卷积网络(CNN)和全连接网络(DNN) ...

  4. 四个修改Docker默认存储位置的方法

    方法一.软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root ...

  5. AtomicInteger和count++的比较

    J2SE 5.0提供了一组atomic class来帮助我们简化同步处理.基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增.减.赋值(更新)操作 ...

  6. Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  7. SpringRMI远程方法调用【原】

    Spring为各种远程访问技术的集成提供了工具类. 该小段引用自 http://www.open-open.com/lib/view/open1408957290478.html Spring远程支持 ...

  8. golang基础数据结构链表

    链表 链表(Linked list),是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer). 每个节点包含下一个节点的地址,这样把所有的节点串起来了, ...

  9. 机器学习课程-第8周-聚类(Clustering)—K-Mean算法

    1. 聚类(Clustering) 1.1 无监督学习: 简介 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签 ...

  10. MFC中添加了一个dialog,并创建了相应的类,初始化函数没有怎么办?

    1.在头文件中添加  virtual BOOL OnInitDialog();2.在对于的CPP文件中添加  BOOL CXXDlg::OnInitDialog()  {      return TR ...