JavaScript-基础语法(4)

时间:2021-07-20 17:59:32
全局方法,和Number对象

演示global的全局方法  和 Number 
  alert(parseInt("123"+1));         outln(parseInt("abc"));//NaN,非法
var val = parseInt("abc");
outln("value = "+isNaN(val));//isNaN判断是否非法


var val2 = parseInt("123afsa");//val2 = 123
outln(val2);//需要注意的是,如果参数开头是数字,parseInt方法会保留前面的有效数字,后面舍弃
//而数字放后面,就不会转化,所以一般用正则表达式来判断其中的各元素是否是有效数字


//指定进制格式转十进制
var val3 = parseInt("123",10);//123
var val4 = parseInt("110",2);//6,
//将十进制转其他进制,需要用到Number对象
var num = new Number(6);
outln(num.toString(2));//110,将6指定为二进制
var num1 = 60;//这里没有new Number
outln(num1.toString(16));//3c
//注意此处可能有疑问,就是num1是一个数值,而数值怎么能用toString()方法呢
//Js是基于对象的,无论写神码)变量,函数等等)在底层都是对象,
//所以用到Number时,很少用到new Number,这类似于Java中的自动装箱

Js的特有语句for in语句:


格式,for(变量 in 对象)//对对象进行遍历的语句
for(i in arr){
document.writeln(i);
}

Js自定义对象

因为是Js是基于对象,所以他不具备描述事物的能力,但是在Js中可以用函数来模拟面向对象的描述

第一种:给对象添更多的属性和行为
function Person(){//相当于构造器           // alert("Person 构造器 run");
}
//通过描述进行对象的建立,new
var p = new Person();


//Js中给对象添加属性,用p.属性名即可
p.name = "a";
p.age = 1;


p.show = function(){//定义p对象的函数
alert("show is running"+this.name+this.age);
}
p.show();

第二种:用于封装,更多的是在描述事物

function Person(name,age){
this.name = name;
this.age = age;
this.setName = function(name){
this.name = name;
}
this.getName = function(){
return this.name;
}
}
var p = new Person("a",1);
alert(p.getName());



第三中:使用{}定义属性和值的键值对方式

var P = {
name:"haha" ,"age":100,//键值对,值必须是冒号,键可以不是
"getName":function(){ //键值对 与 键值对之间用 逗号隔开
return this.name;
},getAge:function(){
return this.age;
}
}
// alert(P.getAge());//注意检测不严格,写成小写p,也不报错
//对象调用成员有两种方式,对象.属性名 对象["属性名"]
alert(P["name"]);
alert(P["name"]+P["getAge"]());//注意调用方法后面要加()


/*
function Person(name,age){
this.name = name;
this.age = age;
this.setName = function(name){
this.name = name;
}
this.getName = function(){
return this.name;
}
}
var p = new Person("a",1);
for(i in p){
document.writeln(p[i]);
}
*/
var map = {
3:"你",5:"我",4:"它"
}
/*for(i in map){
document.writeln(map[i]);
}
outln(map["5"]);//注意如果是数字就可以不加“”
*/
var getKey = function(key){
return map[key];
}
var mm = getKey(5);
alert(mm);

Js的一些命名格式

定义一个对象变量,oXX
int型变量 iXX
布尔型  bXX
String型变量 sXX

一些复杂定义格式
  var mm = {          // name:["sdf","sd","dfg","cd"],age:[13,11,12,13]
names:[{name:"a"},{name:"b"},{name:"c"}]
}
//alert(mm.name[2]);
//alert(mm.names[1].name);
for(var i = 0;i<mm.names.length;i++){
alert(mm.names[i].name);
}