JS 字符串对象 数组对象 函数对象 函数作用域
一.内置对象
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等控制语句并没有自己作用域;而函数是有自己的作用域的;
//函数作用域
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/yuanchenqi/articles/5980312.html
https://www.cnblogs.com/chichung/p/9696134.html

浙公网安备 33010602011771号