javascript基础(第二天)
开胃菜: 如果复制一个数组(浅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的介绍
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基础(第二天)相关推荐
- JavaScript基础——第二章,JavaScript操作BOM对象
一,BOM模型(Borwser Object Model) BOM提供了独立内容的,可以与浏览器窗口进行互动的对象结构 BOM可实现功能: 弹出新的浏览器窗口 移动,关闭浏览器窗口以及调整窗口的大小 ...
- Js与Jq实战:第二讲:JavaScript基础
第二讲:JavaScript基础 一.预习笔记 1.变量 1)JavaScript是一门弱语言,没有明确的数据类型,所以在声明变量时,不需要指定变量的类型,变量的类型由赋给变量的值决定.声明变量一般使 ...
- JavaScript基础笔记集合(转)
JavaScript基础笔记集合 JavaScript基础笔记集合 js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译 js存放的位置 html脚本必须放在< ...
- javascript基础语法——表达式
前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression).本文将详 ...
- JavaScript基础系列---闭包及其应用
闭包(closure)是JavaScript中一个"神秘"的概念,许多人都对它难以理解,我也一直处于似懂非懂的状态,前几天深入了解了一下执行环境以及作用域链,可戳查看详情,而闭包与 ...
- JavaScript基础,Cookies,Sessions
php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...
- Web前端-JavaScript基础教程上
Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...
- JavaScript基础---语言基础(1)
写在前面: 通过四篇博客把JS基础中的基础整理一下,方便自己查阅,这些内容对于实际项目开发中也许并不会在意,但是作为JS的语言基础,自觉还是应该熟悉.在完成这三篇博客(JavaScript基础---语 ...
- 常见JavaScript基础面试题上(附答案)
常见JavaScript基础面试题上(附答案) 1.JavaScript有哪些垃圾回收机制? 有以下垃圾回收机制. 标记清除( mark and sweep) 这是 JavaScript最常见的垃圾回 ...
最新文章
- C++ Primer英文版(第5版)
- jenkins调整jdk版本不生效的解决办法
- docker启动nginx代理不上_Docker nginx 反向代理设置
- java设计模式代理模式_Java中的代理设计模式
- 设计模式(一)单例模式的七种写法
- 给老板做PPT必备:文字加拼音
- 从下往上看--新皮层资料的读后感 第一部分:皮层细胞
- quick code ide设置分辨率
- Python删除文件中含有特定值的行
- android studio 新建的项目无法绘制界面
- 专利号校验码php,电子专利证书的三种下载操作方法
- Android 全仿To圈儿录音界面实现
- HTML 简单日历制作方法
- 【工具脚本】目标检测数据样本的扩增脚本
- showdialog 尝试读取或写入受保护的内存_超频内存比超频CPU收益更大!影驰HOF OC Lab皑钻DDR4-4400评测...
- 一次微信小程序的问题跟踪记录
- zookeeper报错 JAVA_HOME is not set
- 在word里面插入对象显示不全怎么办
- 本地小说阅读网站打造
- RuPengWang项目
热门文章
- 用Windows Live Writer离线写博客
- 全局变量、成员变量、类变量、静态变量、实例变量、局部变量的定义与区别
- Android adb无线调试脚本
- 干货 | 算法工程师入门第三期——黄李超讲物体检测
- WatchDog工作原理
- Android中的ClassLoader与dex文件加密实现分析
- linux的模块化,GoboLinux 017 发布,模块化的 Linux 发行版
- 常用jar包_发布Maven包的正确姿势
- JZOJ 5820. 【NOIP提高A组模拟2018.8.16】 非法输入
- poj3261(求至少出现k次的可重叠的子串的长度)