一.内置对象

object对象:ECMAScript 中的所有对象都由这个对象继承而来;Object 对象中的所有属性和方法都会出现在其他对象中

ToString() :  返回对象的原始字符串表示。
ValueOf() : 返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同

11种内置对象

包括:

Array ,String , Date, Math, Boolean, Number  Function, Global, Error, RegExp , Object

<script language="javascript">
var aa=Number.MAX_VALUE;
//利用数字对象获取可表示最大数 var bb=new String("hello JavaScript");
//创建字符串对象 var cc=new Date();
//创建日期对象 var dd=new Array("星期一","星期二","星期三","星期四");
//数组对象
</script>

二.字符串对象

<script>
var str1 = "str1";
var str2 = new String("str2");
console.log(str1);
console.log(str2);
console.log(str1+str2); //字符串长度
console.log(str2.length) //把字符串转换城整数[parseInt]或者小数[parseFloat]
var num1="100元";
var num2="1.23";
console.log(parseInt(num1));
console.log(parseFloat(num2));
//输出:
//100
//1.23 //split把字符串根据指定字符分割转换成数组
var str="广东省-广州市-天河区";
var ret=str.split("-");
console.log(ret);
//输出:
//["广东省","广州市","天河区"] // indexOf查找字符串是否含有指定字符
var str="广东省-广州市-天河区";
var target="广州";
console.log(str.indexOf(target));
//输出:
//4
//注意,找不到返回的是-1。 //substring截取字符串
//用法: substring(开始的下标,结束的下标)
var str="abcdef";
console.log(str.substring(2,3));
// 输出:
//c </script>

三:数组对象

1.创建数组

A.通过new Array()进行创建

var arr1=new Array();

B.通过中括号进行创建

var arr2=[];

2.数组方法

<script>
var arr1 = [11,22,33,44]; //length 计算数组长度
console.log(arr1.length); //4 //数组的下标 从0开始索引 注意:下标为-1表示没有这个元素,而不是倒数第一个!
console.log(arr1[1]); //22 //获取成员在数组中的下标 indexOf
console.log(arr1.indexOf(44)); //3
console.log(arr1.indexOf(1111)); //-1 //join拼接
console.log(arr1.join("-")); //11-22-33-44 //tostring 对象变成字符串
var ret = arr1.toString();
console.log(ret); //11,22,33,44
console.log(typeof ret); //string //反转排列
console.log(arr1.reverse()); //[44, 33, 22, 11] //数组的删除元素
//splice(删除开始的下标,删除的成员个数)
//返回值就是被删除的元素组成的数组
console.log(arr1.splice(1,2)); //22 33
console.log(arr1); //11 44 //在数组的任意位置添加元素
//splice(要插入的下标位置,0,[插入的元素])
console.log(arr1.splice(1,0,"x","y")); //0表示不删除元素!1表示插入的位置!
console.log(arr1); //[11, "x", "y", 22, 33, 44] //栈操作
//数组的末尾添加元素
//push 表示给数组新增成员,返回结果是新的成员的数量!
var ret=arr1.push("1","2");
console.log(arr1); //[11, 22, 33, 44, "1", "2"]
console.log(ret); //6 //移除数组的最后一个成员
//pop,返回值是被移除的元素!
var ret=arr1.pop();
console.log(ret); //[11,22,33]
console.log(arr5); //44 //sort排序
var arr2 = [12,23,334,100];
console.log(arr2.sort()); //[100, 12, 23, 334] //排序函数
var arr2 = [12,23,334,100];
function IntSort(a,b){
return a-b;
}
console.log(arr2.sort(IntSort)); //[12, 23, 100, 334] //多维数组
//多维数组就是数组的嵌套。二维数组就是嵌套两层,三维数组就是嵌套三层。
var arr5=[
["a","b","c"],
["1","2","3"],
["x","y","z"],
];
//多维数组成员的获取
var arr5=[
["a","b","c"],
["1","2","3"],
["x","y","z"]
]
console.log(arr5[1][2]); //3 // unshift shift
//x.unshift(value,...)
//x.shift()
//使用注解
//x代表数组对象
//value可以为字符串、数字、数组等任何值
//unshift是将value值插入到数组x的开始
//shift是将数组x的第一个元素删除 var arr1=[1,2,3];
arr1.unshift(4,5);
console.log(arr1); //结果为[4, 5, 1, 2, 3]
arr1.unshift([6,7]);
console.log(arr1); //结果为[Array(2), 4, 5, 1, 2, 3]
arr1.shift();
console.log(arr1);//结果为[4, 5, 1, 2, 3] </script>
</body>
</html>

四.函数对象

1.函数语法格式

function 函数名 (参数){
函数体;
return 返回值;
} 注意:js的函数加载执行与python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或下面都可以:

2.函数调用

    function func1(a,b){
alert(a+b);
} func1(1,2); //3
func1(1,2,3);//3
func1(1); //NaN
func1(); //NaN //只要函数名写对即可,参数怎么填都不报错. //-------------------面试题-----------
function a(a,b){
alert(a+b);
}
a(12,23); //35
var a=1;
var b=2;
a(a,b) //Uncaught TypeError: a is not a function

3.函数的内置对象arguments

    function add(a, b) {

        console.log(a + b);//3
console.log(arguments.length);//2
console.log(arguments);//[1,2] } add(1, 2); //------------------arguments的用处1------------------
function nxAdd() {
var result = 0;
for (var num in arguments) {
result += arguments[num];
}
alert(result) //15 } nxAdd(1, 2, 3, 4, 5); //------------------arguments的用处2 ------------------
function f(a, b, c) {
if (arguments.length != 3) {
//Uncaught Error: function f called with 5 arguments,but it just need 3 arguments
throw new Error("function f called with " + arguments.length + " arguments,but it just need 3 arguments")
}
else {
alert("success!")
}
} f(1, 2, 3, 4, 5)

4.匿名函数

匿名函数,没有函数名的函数,这种函数一般使用变量来存放。匿名函数的声明方式类似普通函数,一般使用变量保存起来

语法格式

       (function(){
//函数体
})();
        // 匿名函数 或者自执行函数
var func = function(arg){
return "tony";
}; //匿名函数的应用
(function(){
alert("tony"); //弹出tony
} )(); (function(arg){
console.log(arg);
})('123') //123

  注意匿名函数整体有个括号括住的!

还可以在函数定义前加上“~”和“!”等符号来定义匿名函数  

!function(){
alert('hello!');
}()

五.函数作用域

函数的作用域链和闭包

作用域

js的作用域和py相似,if while等控制语句并没有自己作用域;而函数是有自己的作用域的;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//函数作用域
if(1==1){
    var s=12;
}
console.log(s);//12
 
function f(){
    var temp=666;
}
f();
//console.log(temp);//Uncaught ReferenceError: temp is not defined
 
//嵌套函数作用域
var city = 'beijing';
function func(){
    var city = 'shanghai';
    function inner(){
        var city = 'shenzhen';
        console.log(city);
    }
    inner();
}
func(); //shengzhen
 
 
var city = 'beijing';
function Bar(){
    console.log(city);
}
function func(){
 
    var city = 'shanghai';
    return Bar;
}
var ret = func();
ret();    //beijing
 
 
//闭包
var city = 'beijing';
 
function func(){
    var city = "shanghai";
    function inner(){
        //var city = "langfang";
        console.log(city);  //shanghai
    }
    return inner;
}
var ret = func();
ret();

原文:https://www.cnblogs.com/icemonkey/p/10495453.html

JS 字符串对象 数组对象 函数对象 函数作用域的更多相关文章

  1. fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化

    fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化 在开发过程中,经常需要和前端交互数据,数据交互的格式都是JSON,在此过程中免不了json字符串 ...

  2. js字符串、数组、时间、日期对象

    js对字符串.数组.日期的操作是在以后项目中频繁使用的操作,所以呢....所以大家看着办,其实并不难哈,就是有点无聊,我承认这是我百度的,哈哈哈哈 <!DOCTYPE html><h ...

  3. JS中有关数组Array的常用方法函数

    Array对象的方法主要有如下几种(我所知道的): concat()连接两个或多个数组,并返回结果,但是值得注意的是该方法并不改变数组本身,而仅仅返回一个数组连接的副本. push()在数组后面添加一 ...

  4. NodeJS对象数组Array 根据对象object key的值排序sort

    有个js对象数组 var ary=[{id:1,name:”b”},{id:2,name:”b”}] 需求是根据name 或者 id的值来排序,这里有个风骚的函数. /** * 对数组中的对象,按对象 ...

  5. 从js的repeat方法谈js字符串与数组的扩展方法

    js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...

  6. (js) 字符串和数组的常用方法

    JS中字符串和数组的常用方法 JS中字符串和数组的常用方法 js中字符串常用方法 查找字符串 根据索引值查找字符串的值 根据字符值查找索引值 截取字符串的方法 字符串替换 字符串的遍历查找 字符串转化 ...

  7. js 字符串和数组注意点

    var a="foo"; var b=[ "f","o","o"]; a[1]="o"; b[1]= ...

  8. js字符串与数组的相互转换

    一.数组转字符串,通过join()拼接数组元素 var a, b,c; a = new Array(a,b,c,d,e); b = a.join('-'); c = a.join('');consol ...

  9. js字符串和数组的相互转化

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...

  10. js字符串和数组操作,容易混淆的方法总结(slice、substring、substr、splice)

    平时工作中,很少静下心来总结基础知识,总觉得自己会用了,有点飘了,直到碰壁之后才懂得基础知识的重要性.大牛告诉我,一次写对,是不是可以不用F12去调试了?是不是省了时间?简直是面红耳赤,无地自容.在这 ...

随机推荐

  1. 【转载】ASP.NET MVC Web API 的路由选择

    此文章描述了ASP.NET Web API如何将Http请求路由到controller. 路由表 在ASP.NET Web API中,controller是用来处理HTTP请求的一个类.这个类中用于处 ...

  2. Android播播放完SD卡指定文件夹音乐之后,自动播放下一首

    最近做一个项目,需要连续播放音乐,播放完一首歌之后,自动播放完下一首歌.不要重复播放. 代码如下: package com.example.asyncplayer_ex; import java.io ...

  3. Day6 反射、模块、正则表达式和算法

    递归完成阶乘 def func(num): if num == 1: return 1 return num * func(num - 1) x = func(7) print(x) 反射 commo ...

  4. 7 Hbase put方式插入数据

    package com.hikvision.hbase.vertify.test; import org.apache.hadoop.conf.Configuration; import org.ap ...

  5. 从零开始学C++之IO流类库(四):输出流格式化(以操纵子方式格式化 以ios类成员函数方式格式化)

    一.以操纵子方式格式化 数据输入输出的格式控制使用系统头文件<iomanip>中提供的操纵符.把它们作为插入操作符<<的输出对象即可.如setiosflags.setw.set ...

  6. 【linux系统学习】计算机硬件核心知识

    (一)企业里PC服务器品牌及型号 互联网公司服务器品牌:DELL,HP,IBM(百度):国内品牌:浪潮,联想,航天联志 DELL服务器品牌:1u = 4.45CM 2010年前 1u 1850,195 ...

  7. [转载]PHP检测一个元素是否存在于数组中

  8. Rust语言

    Rust语言 https://doc.rust-lang.org/stable/book/ http://www.phperz.com/article/15/0717/141560.html Rust ...

  9. ISP PIPLINE (七) gamma

    what is the gamma? CCD.CMOS成像方式是通过像点中的"硅"感受光线的强弱而获得画面.而硅感光是物理成像,它真实地反应光线强度的变化,来多少就输出多少,因此它 ...

  10. java接口深入

    1.抽象类. java常规类中,有些方法并不是固定的,而是在不同的情况下有不同的实现的,比如一个人,在公司要工作,在学校要学习,在食堂要吃饭,但是这个人还有相同的地方,比如不论在哪里都要呼吸,看,挺, ...