一.内置对象

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. springcloud情操陶冶-springcloud config server(三)

    承接前文springcloud情操陶冶-springcloud config server(二),本文就不讲述server了,就简单阐述下client的应用 前话 config server在引入的时 ...

  2. .net接收post请求并把数据转为字典格式

    public SortedDictionary<string, string> GetRequestPost() { int i = 0; SortedDictionary<stri ...

  3. Android底部导航栏(可滑动)----TabLayout+viewPager

    [TabLayout] ①TabLayout是选项卡,在屏幕空间有限的情况下,对不同的空间进行分组.属于android support design,更多的用于新闻上,如果放在底部也可做底部导航栏 ② ...

  4. July 01st. 2018, Week 27th. Sunday

    Empty your cup so that it may be filled. 清空杯子,方能再次装满. From Bruce Lee. We can't learn anything new if ...

  5. Beyond Compare 3.3.8 build 16340 + Key

    本文摘录自冰点社区:http://forum.z27315.com/topic/14746-beyond-compare-338-build-16340-key/ Download Beyond Co ...

  6. JAVAFX之tableview界面实时刷新导致的内存溢出(自己挖的坑,爬着也要出来啊0.0)

    这几天遇到了一个问题,不幸开发的一个cs架构的工具,客户端开启后,内存一直在缓慢增长最终导致进程卡死,花了4天时间,终于爬出来了... 客户端通过timer定时器每30秒查询一次数据库以及一些业务逻辑 ...

  7. Scala实现Try with resources自动关闭IO

    在处理数据库连接或者输入输出流等场景时,我们经常需要写一些非常繁琐又枯燥乏味的代码来关闭数据库连接或输入输出流. 例如数据库操作: def update(sql: String)(conn: Conn ...

  8. 深入理解Java虚拟机-第1章-走进Java-读书笔记

    第 1 章 走近 Java 前言 Java 的技术体系主要是由支撑 Java 程序运行的虚拟机.为各开发领域提供接口支持的 Java API.Java 编程语言及许许多多的第三方 Java 框架(如 ...

  9. 爬虫框架之Scrapy(二)

    递归解析 糗事百科递归解析 在前面的例子里只是爬取了糗事百科热门的第一个页面,但是当我们需要爬取更多的页面时,需要对每个页面的url依次发起请求,然后通过解析的方法进行作者和标题的解析. 我们可以构建 ...

  10. 网络层和arp协议

    1:arp协议功能:获取mac地址 ----------------------在同一个局域网:发送端mac  接收端mac(FF:FF:FF:FF:FF:FF:FF) 源IP  目标IP  数据 - ...