javascript基本对象
1 String对象
创建对象
var string1 = new String("Hello");
var string2 = "Hello" //也可以创建一个基本的字符串,js后台会自动把其转换为String对象
1.1 length()
长度属性
var str = "Hello,world!";
var tmp = str.length; //12
1.2 indexOf与lastIndexOf
根据元素找索引
var myString = new String("hello world hello")
document.write(myString.indexOf('hello')) //0,从前面开始匹配,匹配到后就不继续查找了
document.write(myString.indexOf('world')) //6
document.write(myString.indexOf('123')) //-1
document.write(myString.lastIndexOf('hello')) //12,从后面开始匹配,匹配到后就不继续查找了
document.write(myString.lastIndexOf('world')) //6
document.write(myString.lastIndexOf('123')) //-1
练手统计字符串
<script>
originString = 'Python is an to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.'
var foundAtPosition = 0
var targetCount = 0
while (foundAtPosition != -1){
foundAtPosition = originString.indexOf("Python",foundAtPosition)
if(foundAtPosition != -1){
targetCount++
foundAtPosition++ //防止死循环
}
}
document.write(targetCount)
</script>
1.3 substr()
复制字符串的一个子串,类似于py的切片
var str = "Hello,world!";
var tmp = str.substr(0,4); //Hell
//获取当前网页文件名
var fileName = window.location.href;
fileName = fileName.substr(fileName.lastIndexOf("/") + 1);
document.write(fileName);
1.4 toLowerCase与toUpperCase
大小写转换
var str = "Hello,world!";
var tmp = str.toLowerCase();
var tmp = str.toUpperCase();
1.5 charCodeAt
字符串转为字符编码
var tmp ="A".charCodeAt(0);
1.6 fromCharCode
字符编码转为字符串
//它是一个静态方法,不需要创建对象就能使用
var tmp = String.fromCharCode(65, 66, 67);
1.7 trim
去掉两端空格
var myString = prompt("Enter some text", "Hello,world!");
var tmp = myString.trim();
2 Array对象
2.1 length
var names = [];
names[0] = "morra";
names[1] = "blue";
names[11] = "jack";
var tmp = names.length
document.write(tmp) //12
//["morra", "blue", undefined × 9, "jack"]
2.2 push()
添加元素
使用push的时候无需指定索引
var names = ["123"];
names.push("hello1")
names.push("hello2")
document.write(names) //123,hello1,hello2
2.3 concat()
连接数组
var names = ["a","b","c"];
var ages = ["1","2","3"];
var tmp = names.concat(ages); //["a", "b", "c", "1", "2", "3"]
2.4 slice()
切片
var names = ["a","b","c","d","e","f"];
var tmp = names.slice(1,4);
console.log(names) //初始数组对象不变,["a", "b", "c", "d", "e", "f"]
console.log(tmp); //["b", "c", "d"]
2.5 join
连接
var names = ["a", "b", "c", "d", "e", "f"];
var tmp = names.join("_")
console.log(tmp) //a_b_c_d_e_f
2.6 sort()
排序
排序是分大小写的
js保存的是字符串对应的unicode编码,所以排序是基于unicode编码而不是实际字母
2.7 reverse()
翻转
var names = ["a", "b", "c", "d", "e", "f"];
names.reverse();
console.log(names) //["f", "e", "d", "c", "b", "a"]
2.8 indexOf与lastIndexOf
根据元素找索引,没有找到目标则返回-1
var names = ["a", "b", "c", "d", "c", "f"];
var tmp1 = names.indexOf("c")
var tmp2 = names.lastIndexOf("c")
console.log(tmp1) //2
console.log(tmp2) //4
2.9 every()与some()
every():判断可迭代对象中的所有元素是否全部满足目标条件
some():判断可迭代对象中的所有为元素是否全部满足目标条件
every()与some()都返回布尔值
var numbers = [1, 2, 3, 4, 5];
function isLessThan(value, index, array) {
var ret = false;
if (value < 3) {
ret = true;
}
return ret
}
alert(numbers.every(isLessThan));
2.10 filter()
filter()返回的是符合条件的元素组成的数组。
var numbers = [1, 2, 3, 4, 5];
function isLessThan(value, index, array) {
var ret = false;
if (value < 3) {
ret = true;
}
return ret
}
console.log(numbers.filter(isLessThan)) //[1, 2]
2.11 forEach()和map()
都是对可迭代对象中的元素进行批量操作,但是forEach()是没有返回值的,因此只能操作但是不自动保存修改后的数据。
//forEach
var numbers = [1, 2, 3, 4, 5];
function double(value, index, array) {
var ret = value * 2;
console.log(ret)
}
numbers.forEach(double)
//map
var numbers = [1, 2, 3, 4, 5];
function double(value, index, array) {
var ret = value * 2;
return ret
}
console.log(numbers.map(double)) //[2, 4, 6, 8, 10]
3 Math对象
Math对象提供了很多数学函数和数值操作的方法。Math对象之前不需要实例化,js会自动创建。所以在使用时直接用就好了。例如:
var myNumber = -101;
console.log(Math.abs(myNumber))
| 方法 | 注释 |
|---|---|
| abs() | 绝对值 |
| min() | 最小值 |
| max() | 最大值 |
| ceil() | 向上修整到最接近的最小整数,例:10.01 > 11 , -9.99 > -9 |
| floor() | 向下修整到最接近的最小整数,例:10.01 > 10 , -9.99 > -10 |
| round() | 四舍五入 |
| pow() | 指数 |
| random() | 返回一个0~1之间的随机浮点数 |
pow()
指数
console.log(Math.pow(2,3)) //2^3
random()
返回一个0~1之间的随机浮点数
console.log(Math.random()) //返回 0<=x<1 之间的随机浮点数
console.log(Math.random()*6) //返回 0<=x<6 之间的随机浮点数
console.log(Math.floor(Math.random()*6)) //返回 0<=x<6 之间的随机整数
console.log(Math.floor(Math.random()*6)+1) //返回 1<=x<7 之间的随机整数
4 Number
创建对象与String类似
var myNumber1 = new Number(123);
var myNumber2 = 123;
//切记下面的这种写法js会把其识别为String对象而不是Number对象
var myNumber2 = "123";
4.1 toFixed()
四舍五入,可自定义保留几位
var myNumber1 = new Number(123.4567);
console.log(myNumber1.toFixed(1)); //123.5
console.log(myNumber1.toFixed(2)); //123.46
console.log(myNumber1.toFixed(3)); //123.457
5 自定义对象
创建对象
//方法一:
var person1 = new Object();
//方法二:
var person1 = {};
//创建属性
person1.name = "morra";
person1.age = "123";
//创建方法
person1.greet = function () { //创建方法并把一个匿名函数赋给它
alert("hello,world!")
};
5.1 常规用法
一般在引用方法内的当前对象时使用this,而非实际的对象名。这是一个约定俗成的写法,不写也不会报错。
var person1 = {};
person1.name = "morra";
person1.age = "30";
person1.info = function () {
document.write("name:"+ this.name+"<br/>"+"age:"+this.age)
};
person1.info();
5.2 简写
对象使用字面量的使用
var person1 = {
name:"morra",
age:"30",
info:function () {
document.write("name:"+ this.name+"<br/>"+"age:"+this.age)
}
};
person1.info();
6 引用类型(对象的模版)
javascript允许用户根据自己的需求创建特定对象的模版。引用类型就是对象的模版,在使用新的对象模版之前需要先定义对象类型、方法、属性。定义对象模版的时候,并不会创建基于该模版的对象。只有使用new关键字创建该模版的实例时,才会根据原型(prototype)创建。其实javascript的“引用类型”和其他语言中的“类”的逻辑类似。
String、Number、Array、Date、Object都是引用类型,用户创建的对象是这些类型的实例。
引用类型组成部分:构造函数、方法定义、属性。
//创建构造方法
function Person(name,age) {
this.name = name;
this.age = age;
}
//定义info方法
// 每个函数都有prototype属性,其只对构造函数有用。Person.prototype与Person()对象共享属性与方法。
Person.prototype.info= function () {
return this.name+":"+this.age;
}
//创建两个对象
var p1 = new Person("morra","123");
var p2 = new Person("jack","456");
document.write(p1.info())
document.write(p2.info())
javascript基本对象的更多相关文章
- javascript 全局对象--w3school
JavaScript全局对象 1. decodeURI()解析某个编码的URI. 2.decodeURInComponent()解析一个编码的URI组件. 3.encodeURI()把字符串编码为U ...
- JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString
JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...
- 从零构建JavaScript的对象系统
一.正统的类与继承 类是对象的定义,而对象是类的实例(Instance).类不可直接使用,要想使用就必须在内存上生成该类的副本,这个副本就是对象. 以Java为例: public class Grou ...
- 关于javascript自定义对象(来自网络)(最近几天不会的)
javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放在构造方法里面定义 优点:动态的传递参数 缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存 funct ...
- 据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展
在据说每个大牛.小牛都应该有自己的库——框架篇中我扬言要做个小牛,没想到一天没更新,小伙儿伴们就戏谑的问我,油哥是不是要太监了?其实事情是这个样子的,这不是太监的节奏,一是,关于写个自己的库的想法由来 ...
- JavaScript RegExp 对象
JavaScript RegExp 对象 RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的 ...
- JavaScript String 对象
JavaScript String 对象 String 对象 String 对象用于处理文本(字符串). String 对象创建方法: new String(). 语法 var txt = new S ...
- JavaScript Math 对象
JavaScript Math 对象 Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). 语法 var ...
- JavaScript Number 对象
JavaScript Number 对象 Number 对象 Number 对象是原始数值的包装对象. Number 创建方式 new Number(). 语法 var num = new Numbe ...
- JavaScript Array 对象
JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...
随机推荐
- 摆脱DOM操作,从TodoMVC看angularJS
取代jQuery? 我很久之前便听说了angularJS的大名,之前的leader也经常感叹angularJS的设计如何如何精妙,可叹一直没有机会深入了解,国庆长假因为没钱出游,倒是可以对他做一个了解 ...
- arcgis api for js入门开发系列三地图工具栏(含源代码)
上一篇实现了demo的地图加载展示,在上篇实现的基础上,新增了地图工具栏以及通用地图控件功能,比如地图框选缩放.地图漫游.清空.量算工具.地图导航控件.地图比例尺控件.地图鹰眼图等等,总共分为5个部分 ...
- 我的屌丝giser成长记-研二篇
之前有提到过的,本来按照计划中,研一结束就该去深圳中科院研究所实习的,之前跟里面师兄说好了的,奈何导师又接到一个新的科研研究项目,跟学院的几个其他老师一起合作的,主要是关于土地流转系统,而且是一个挺大 ...
- Java中使用IO流实现大文件的分裂与合并
文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时候就可以把这个文件切割成3个1G的文件 ,分 ...
- Allocators与Criterion的相同点及区别
C++98: 1.相同点: Allocators having the same type were assumed to be equal so that memory allocated by o ...
- Elixir - Hey, two great tastes that go great together!
这是Elixir的作者 José Valim 参与的一次技术访谈,很有料,我们可以了解Elixir的一些设计初衷,目标等等. 原文在: http://rubyrogues.com/114-rr-eli ...
- java——HashMap的实现原理,自己实现简单的HashMap
数据结构中有数组和链表来实现对数据的存储,但是数组存储区间是连续的,寻址容易,插入和删除困难:而链表的空间是离散的,因此寻址困难,插入和删除容易. 因此,综合了二者的优势,我们可以设计一种数据结构-- ...
- 统计分析中Type I Error与Type II Error的区别
统计分析中Type I Error与Type II Error的区别 在统计分析中,经常提到Type I Error和Type II Error.他们的基本概念是什么?有什么区别? 下面的表格显示 b ...
- SCVMM中Clone虚拟机失败显示Unsupported Cluster Configuration状态
在SCVMM进行虚拟机的Clone,虽然失败了,但是Clone出虚拟机却显示在SCVMM控制台的虚拟机的列表中,并且状态是Unsupported Cluster Configuration.无法修复, ...
- Windows下Java环境配置,tomcat安装
问题描述:在Windows下面做Java web相关的项目的时候,Java和tomcat是基础,这里记载一下Java环境的配置以及tomcat的安装和配置. 使用工具:Windows.jdk安装包.t ...