JS基础知识(数据类型)总结

小虾米 阅读:757 2021-05-02 15:05:58 评论:0
 
1,关于typeof
 
  因为是弱类型语言,而程序代码中又不得不定义出变量的类型所提供出来的方法。
  返回的结果如下图:
 
  如下例子:
  
var test = "123"; 
var ob = { 
   add : function(x,y){return x + y} 
} 
var fu = function(x,y){return x - y} 
var nu = null; 
var xyz; 
alert(typeof(test));//string 
alert(typeof(123));//number 
alert(typeof(undefined))//undefined 
alert(typeof(fu));//function 
alert(typeof(ob));//object 
alert(typeof(nu));//object 
alert(typeof(xyz));//undefined
  
  看来上面的例子,可以说通过typeof来判断变量类型不是件很简单的事。
  更详细的列表: 摸我
   https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
 
2,undefined
  
   undefined表明变量还未定义。
 
  就像你问javascript,tea是什么,它会回答:没听说过...
  就如下
var tea; 
alert(tea);
  也可以这样
var x = undefined;//默认未赋值的变量为undefined
  判断方式:
if (x === undefined) ...
if (!x) ...
if (typeof x === "undefined") ...
推荐最后者,详细区别参考:继续摸
另外,对于第二种判断,大家一定学习过if(x)返回false的值有如下:
false 
0 
"" 
NaN 
null 
undefined
 
     

3,null

  null表示一个空对象指针,参照前面typeof的例子,typeof操作会返回"object"。
 
      
var car = null; 
alert(typeof car); //”object”
 
      
  就像你问javascript,tea是什么,它会回答:听说过,具体是怎么样的不知道。这就是和undefined的区别吧。
  如果用双等号判断要注意的是:
alert(undefined == null)//true
4,Boolean

关于
自动转变值到true或false:
var message = “Hello world!”; 
var messageAsBoolean = Boolean(message);

  在if里的值也是这个道理,如下表转换原则:

 

 

5,Number

关于八进制和十六进制

  如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。

var y=0377; var z=0xFF;

  所以不要在数字前面写0

方法:

 

toFixed()方法比较常用,比如在页面上计算百分比的时候:
var num = new Number(13.37); 
document.write (num.toFixed(1))
判断是否为数字:
1,使用isNaN(),isNaN是is Not a Number的简写,所以不是number返回true,是number返回false。
2,当然可以使用typeof
 
         
转成数字类型:
1,parseFloat(x)
   特别注意:parseFloat("40 years") //40
   详细:摸摸
2,new Number(x)
3,~~x
4,+x 
  等于调用了Number的构造函数


6,Object
三种方式创建object(非常清晰):

继续摸摸

关于三种方法:
类方法 
 
对象方法 
 
原型方法
例子: 
function People(name) 
{ 
 
this.name=name; 
 
//对象方法 
 
this.Introduce=function(){ 
 
     alert("My name is "+this.name); 
 
     } 
} 
//类方法 
People.Run=function(){ 
     alert("I can run"); 
} 
//原型方法 
People.prototype.IntroduceChinese=function(){ 
     alert("我的名字是"+this.name); 
} 
var p1=new People("Windking"); 
p1.Introduce(); 
People.Run(); 
p1.IntroduceChinese();
理解: 
1,类方法理解成静态方法就可以了。
2,对象方法就是实力方法。
3,用于扩展原对象,new出来的实例可以调用,内部使用的this,是指对象实例 
  对象方法在new的时候都会重新创建一遍,而原型方法则不用。




----------------------------------------

继续前行!

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

我的关注

全民解析

搜索
关注我们