字符串使用单引号’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. 查询字符串(性能对比): Array Vs HashMap

    ip字符串长度: 15 ip count: 25 time - array:16ms, 查询次数:25000time - map:15ms, 查询次数:25000 ip count: 42 time ...

  2. Hashtable 删除元素, 抛出异常 java.util.ConcurrentModificationException

    今天在对一个Hashtable对象进行 搜索 -> 删除 操作时遇到的一个问题,开始的使用我使用的是Hashtable的Iterator,然后直接执行: Hashtable.remove(key ...

  3. Python数据挖掘课程

    [Python数据挖掘课程]一.安装Python及爬虫入门介绍[Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍[Python数据挖掘课程]三.Kmeans聚类代码实现.作 ...

  4. JS模板引擎handlebars.js的简单使用

    handlebars.js的使用 首先我们要明白handlebars.js是干什么用的,我们知道使用jsp很麻烦, 于是我们开始使用freemarker等模板引擎,但这个只是针对服务器端来解 析的,那 ...

  5. CodeForces912E 折半+二分+双指针

    http://codeforces.com/problemset/problem/912/E 题意·n个质数,问因子中只包含这其中几个质数的第k大的数是多少 最显然的想法是暴力搜预处理出所有的小于1e ...

  6. mac 本上对 rar 压缩包解压

    以前从晚上各种找软件对 xxx.rar 压缩包文件进行解压,也确实找到过那么几个,要不是不好用就是解压完有乱码,很是头疼. 这次又遇到这样的问题,于是下定决心将这个问题彻底解决好,经过验证,总结一下最 ...

  7. SpringBoot使用redis缓存List<Object>

    一.概述 最近在做性能优化,之前有一个业务是这样实现的: 1.温度报警后第三方通讯管理机直接把报警信息保存到数据库 2.我们在数据库中添加触发器,(BEFORE INSERT)根据这条报警信息处理业务 ...

  8. Swift学习笔记6

    1.用类型检查操作符(is)来检查一个实例是否属于特定子类型.若实例属于那个子类型,类型检查操作符返回 true,否则返回 false. 2.某类型的一个常量或变量可能在幕后实际上属于一个子类.当确定 ...

  9. maven的隔离部署

    场景:比如说我们一个项目,在开发的时候是一套配置文件,在发布的时候又是一套配置文件.我们每次都要修改配置文件很烦有木有.所以,我们需要maven的这样的一个功能,就是隔离部署.就是说我们写好几套配置文 ...

  10. Linux记录-普通用户下执行sudo xxx 找不到命令解决方案

    chmod 777 /etc/sudoers vim /etc/sudoers 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指定当用户执行 ...