开胃菜:  如果复制一个数组(浅copy)?

开始的一句话: http://www.w3school.com.cn/  js犀牛书, js高级程序设计, 生活必备, 推荐买js犀牛书<javascript权威指南>

Boolean

!!  //强制类型转换

!![] //true

!!{} //true

!!'false' //true

Number

Number.MAX_VALUE  //倒序遍历设初始值的时候很有用

Number.MIN_VALUE

(2.1234).toFixed(2)      //2.12 (会四舍五入,在截取四舍五入的时候, 精度丢失,不是很准确 (四舍六入五成双) )控制小数点0-20

(2.444).toFixed(2); //"2.44"

(2.445).toFixed(2); //"2.44" 异常

(2.446).toFixed(2); //"2.45"

(2.4444).toFixed(3); //"2.444"

(2.4445).toFixed(3); //"2.445" 正确

(2.4446).toFixed(3); //"2.445"

/*
       * 模拟Math.toFixed()方法 ------->感谢刚哥贡献
       * 优化: 四舍五入精度不准确问题(四舍六入五成对)
       */
       function toFixed2(number,fractionDigits){
              return Math.round(number*Math.pow(10,fractionDigits))/Math.pow(10,fractionDigits);
       }
       console.log( toFixed2(2.224,2) ); //2.22
       console.log( toFixed2(2.225,2) ); //2.23
       console.log( toFixed2(2.226,2) ); //2.23
       console.log( toFixed2(2.2224,3) ); //2.222
       console.log( toFixed2(2.2225,3) ); //2.223
       console.log( toFixed2(2.2226,3) ); //2.223

Math.PI.toPrecision(7);  //"3.141593" 转成10进制形式的字符串.

String

字符串创建后不可修改

var s = 'abcd';

console.log(s[1]);

s[1]='e';

console.log(s[1]);

console.log(s);

" xx ".trim();  //这个应该是es3的

'abcd'.localeCompare('abcd'); //0

'XxX'.toLowerCase();   //xxx  转小写

'XxX'.toUpperCase();   //XXX 转大写

split(字符串或者正则,数组的最大长度);

'abcdefg'.substr(开始位置,长度);  'abcdefg'.substr(0); //截取到结尾

'abcdefg'.substring(开始位置,结束位置);  'abcdefg'.substring(0); //截取到结尾

var a = 'abcd';

var b= a.substr(0);

var c = a;

b='bbbb';

c='cccc';

console.log(a);  //abcd

'abcdefg'.slice(开始位置,结束位置);  'abcdefg'.slice(0); //截取到结尾

'abcdefgc'.search(/*正则*/  /C/img); //第一个与 regexp 相匹配的子串的起始位置,没找到-1

replace(正则或者字符串, 替换字符串);

var a = 'abcdefgc'; a.replace('c','z');            //abzdefgc

var a = 'abcdedgc'; a.replace(/C/img,'z');    //abzdefgz

var a = 'abcdedgc'; a.replace(/C/img,'z');    console.log(a);  //abcdedgc 返回新串,不修改原来的哟

match(正则或者字符串);

'abcdefgc'.match('c'); //['c']

'abcdefgc'.match(/C/img) //["c", "c"] 返回一个匹配的数组

indexOf(检索字符串,开始位置); 从前往后, 返回检索位置,没找到-1

lastIndexOf(检索字符串,开始位置); 从后往前, 返回检索位置,没找到-1

concat(连接的一个或者多个字符串);

var a = 'abcdefg';

a.concat('hijklmn');

console.log(a); //abcdefg,返回新串,不修改原来的哟

charAt(索引位置);返回对应字符

'abcd'.charAt(200); //'' 找不到返回空字符串

charCodeAt(索引位置);返回对应字符Unicode 编码

'abcd'.charCodeAt(200); //NaN 找不到NaN

Date

var  data = new Date();

http://blog.csdn.net/hudashi/article/details/7069600    //关于GMT UTC的介绍

GMT就是格林尼治标准时间,它是Greenwich mean time的简称。
UTC则是协调世界时间,它是coordinated universal time的时间。它是一种更精确的GMT。

getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
   getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
   getMonth() 从 Date 对象返回月份 (0 ~ 11)。
   getFullYear() 从 Date 对象以四位数字返回年份。
   getHours() 返回 Date 对象的小时 (0 ~ 23)。
   getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
   getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
   getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
   getTime() 返回 1970 年 1 月 1 日至今的毫秒数。

RegExp

var r = new RegExp("aaa","img");  <==> var r = /aaa/img;

exec(待检验的字符)

/c/img.exec('abcdefgc');  //['c']

new RegExp("c","img").exec('abcdedgc'); //['c']

test(待检验的字符);

var a='abcd';

var r = new RegExp('c','img');

var r2 = /c/img;

console.log( r.test(a) );  //true

console.log( r2.test(a) ); //true

Error

EvalError: 错误发生在eval()中
    SyntaxError: 语法错误,错误发生在eval()中,因为其它点发生SyntaxError会无法通过解释器
    RangeError: 数值超出范围
    ReferenceError: 引用不可用
    TypeError: 变量类型不是预期的
    URIError: 错误发生在encodeURI()或decodeURI()

throw new Error(0,”Error Demo”);
    throw({name:'name',message:'message'});

Function

apply(那个指定的对象, 参数数组)

var a = {0:'bbb',1:'ccc',length:2};

[].slice.apply(a);  //["bbb", "ccc"]

call(那个指定的对象, 参数1,参数2,....无限.....);

var a = {0:'bbb',1:'ccc',length:2};

[].slice.call(a);  //["bbb", "ccc"]

//下面是易懂的小例子

function a(param1,param2){
                this.b = param1;
                this.c = param2;
        }
        var obj = {};
        var t1 = a.apply(obj,['bbb1','ccc1']);
        console.log(obj);
        var t2 = a.call(obj,'bbb2','ccc2');
        console.log(obj);

arguments.callee;  //性能不好,不推荐使用

function a(num){
            if(num){
                console.log(arguments.callee()+" come in");
            }else{
                return "tm";
            }
        }
        a(3);  //tm come in

闭包

function a(){
        var v = 'vvv';
        function f(){
            return v;
        }
        return f();
    }
    console.log( a() ); //vvv

Array

delete

var a =[1,2,3]; delete a[1]; a; //[1, undefined × 1, 3]

pop(); //删除尾部元素,并返回删除元素, 没删掉返回undefined

var a = []; a.pop(); a; //[];

push();添加尾部一个或更多元素,并返回length,

shift(); 用于把数组的第一个元素从其中删除,并返回第一个元素的值。

var a = []; a.shift(); //undefined;

unshift();数添加开头一个或更多元素,并返回length

reverse(); 颠数组中元素的顺序,改变原数组吗?

sort(); 排序,改变原数组吗?

[1,3,2,6,5,4].sort(); //[1, 2, 3, 4, 5, 6]

['1','3','2','11','12'].sort(); //["1", "11", "12", "2", "3"];

['1','3','2','11','12'].sort(function(a,b){return a-b}); //["1", "2", "3", "11", "12"]

concat(); 连接两个或更多的数组,并返回新数组,改变原数组吗?

var a = [1,2,3]; b=[4,5,6]; a.concat(b); a;

var a = [1,2,3]; b=[4,5,6]; var c = a.concat(b,b,b); c;

join(); 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

slice(开始位置,结束位置); 从某个已有的数组返回选定的元素

var a = [1,2,3];  var b= a.slice(); console.log(b);

splice(删除位置,删除数量,替换的新项目可以多个); 返回值是删除的元素数组, !!!重点方法, 增/删/改 全活.!!!! 改变原数组吗?

//增

var a = [4,5,6]; a.splice(2,0,'x');  a;  //在删除位置的前面新增

//删

var a = [4,5,6]; a.splice(2,1); a;

//改

var a = [4,5,6]; a.splice(2,1,'x'); a;

Object

//所有的对象都继承于object.prototype

typeof null === 'object'  //true

hasOwnProperty(); //判断属性是否是当前对象

var a = {b:'bbb',c:'ccc'};
    var b = function(){
        this.d='ddd';
    };
    b.prototype = a;
    var bb = new b();
    console.log( bb.hasOwnProperty('b') ); //false
    console.log( bb.hasOwnProperty('d') ); //true

for(var i in bb){
        if( bb.hasOwnProperty(i)){
            console.log(i);
        }
    }

isPrototypeOf();  判断实例是否在某原型链上

var s = 'dd'; String.prototype.isPrototypeOf(s);         //false

var s = new String('dd'); String.isPrototypeOf(s);      //false

var s = new String('dd'); String.prototype.isPrototypeOf(s);      //true

propertyIsEnumerable(); //是否可枚举(for in)

Object.propertyIsEnumerable('toString');     //false

Object.propertyIsEnumerable('__proto__'); //false

({a:'a'}).propertyIsEnumerable('a');  //true;

toLocaleString();

new Date().toLocaleString();  //"2015/5/7 下午12:16:24"

toString();

function a(){}; a.toString(); //"function a(){}"

valueOf();

new Number(2).valueOf() === 2 //true

//------------------------------------------------------------------------------------

全局方法

Math

http://www.w3school.com.cn/jsref/jsref_obj_math.asp

abs(x) 返回数的绝对值。
      acos(x) 返回数的反余弦值。
      asin(x) 返回数的反正弦值。
      atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
      atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
      ceil(x) 对数进行上舍入。
      cos(x) 返回数的余弦。
      exp(x) 返回 e 的指数。
      floor(x) 对数进行下舍入。
      log(x) 返回数的自然对数(底为e)。
      max(x,y) 返回 x 和 y 中的最高值。
      min(x,y) 返回 x 和 y 中的最低值。
      pow(x,y) 返回 x 的 y 次幂。
      random() 返回 0 ~ 1 之间的随机数。
      round(x) 把数四舍五入为最接近的整数。
      sin(x) 返回数的正弦。
      sqrt(x) 返回数的平方根。
      tan(x) 返回角的正切。
      toSource() 返回该对象的源代码。
      valueOf() 返回 Math 对象的原始值。

//打印window

decodeURI

decodeURIComponent

encodeURI

encodeURIComponent

eval

isFinite

isNaN

parseInt

parseFloat

转载于:https://www.cnblogs.com/tm-roamer/p/4540458.html

javascript基础(第二天)相关推荐

  1. JavaScript基础——第二章,JavaScript操作BOM对象

    一,BOM模型(Borwser Object Model) BOM提供了独立内容的,可以与浏览器窗口进行互动的对象结构 BOM可实现功能: 弹出新的浏览器窗口 移动,关闭浏览器窗口以及调整窗口的大小 ...

  2. Js与Jq实战:第二讲:JavaScript基础

    第二讲:JavaScript基础 一.预习笔记 1.变量 1)JavaScript是一门弱语言,没有明确的数据类型,所以在声明变量时,不需要指定变量的类型,变量的类型由赋给变量的值决定.声明变量一般使 ...

  3. JavaScript基础笔记集合(转)

    JavaScript基础笔记集合 JavaScript基础笔记集合   js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译   js存放的位置 html脚本必须放在< ...

  4. javascript基础语法——表达式

    前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression).本文将详 ...

  5. JavaScript基础系列---闭包及其应用

    闭包(closure)是JavaScript中一个"神秘"的概念,许多人都对它难以理解,我也一直处于似懂非懂的状态,前几天深入了解了一下执行环境以及作用域链,可戳查看详情,而闭包与 ...

  6. JavaScript基础,Cookies,Sessions

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...

  7. Web前端-JavaScript基础教程上

    Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...

  8. JavaScript基础---语言基础(1)

    写在前面: 通过四篇博客把JS基础中的基础整理一下,方便自己查阅,这些内容对于实际项目开发中也许并不会在意,但是作为JS的语言基础,自觉还是应该熟悉.在完成这三篇博客(JavaScript基础---语 ...

  9. 常见JavaScript基础面试题上(附答案)

    常见JavaScript基础面试题上(附答案) 1.JavaScript有哪些垃圾回收机制? 有以下垃圾回收机制. 标记清除( mark and sweep) 这是 JavaScript最常见的垃圾回 ...

最新文章

  1. C++ Primer英文版(第5版)
  2. jenkins调整jdk版本不生效的解决办法
  3. docker启动nginx代理不上_Docker nginx 反向代理设置
  4. java设计模式代理模式_Java中的代理设计模式
  5. 设计模式(一)单例模式的七种写法
  6. 给老板做PPT必备:文字加拼音
  7. 从下往上看--新皮层资料的读后感 第一部分:皮层细胞
  8. quick code ide设置分辨率
  9. Python删除文件中含有特定值的行
  10. android studio 新建的项目无法绘制界面
  11. 专利号校验码php,电子专利证书的三种下载操作方法
  12. Android 全仿To圈儿录音界面实现
  13. HTML 简单日历制作方法
  14. 【工具脚本】目标检测数据样本的扩增脚本
  15. showdialog 尝试读取或写入受保护的内存_超频内存比超频CPU收益更大!影驰HOF OC Lab皑钻DDR4-4400评测...
  16. 一次微信小程序的问题跟踪记录
  17. zookeeper报错 JAVA_HOME is not set
  18. 在word里面插入对象显示不全怎么办
  19. 本地小说阅读网站打造
  20. RuPengWang项目

热门文章

  1. 用Windows Live Writer离线写博客
  2. 全局变量、成员变量、类变量、静态变量、实例变量、局部变量的定义与区别
  3. Android adb无线调试脚本
  4. 干货 | 算法工程师入门第三期——黄李超讲物体检测
  5. WatchDog工作原理
  6. Android中的ClassLoader与dex文件加密实现分析
  7. linux的模块化,GoboLinux 017 发布,模块化的 Linux 发行版
  8. 常用jar包_发布Maven包的正确姿势
  9. JZOJ 5820. 【NOIP提高A组模拟2018.8.16】 非法输入
  10. poj3261(求至少出现k次的可重叠的子串的长度)