Javascript初识

嘿嘿,一直对javascript比较感兴趣,之前只是简单地学习,没有认真地把它系统地学习一遍,今天听到关于“HTML5+JS”以后可能的发展,瞬间觉得应该好好学学这个东东了,打算学好了之后再做一些javascript漂亮的特效来玩一下哈!!


下面先从javascript的基础知识来认识一下它哈(PS:大牛还是绕道哈~~~)


Javascript是什么?

1.Javascript 是一种解释型的、基于对象的脚本语言。

2.您不能使用该语言来编写独立运行的应用程序,并且没有对读写文件的内置支持。

3.此外,Javascript 脚本只能在某个解释器或“宿主”上运行,如 Active Server Pages(ASP)、Internet 浏览器或者 Windows 脚本宿主。


Javascript如何编写?

1.与其他许多编程语言一样,Javascript是用文本方式编写的,并被组织成为语句、由相关的语句集组成的块、以及注释。

2.在一条语句内可以使用变量(只能用var类型)、比如字符串和数字(称为“文字”)的立即数、以及表达式。

通常在函数或者If条件判断中使用语句块({ }),例如:

function convert(inches)  {
   feet = inches / 12;  //  这五条语句属于一个语句块。
   miles = feet / 5280;
   nauticalMiles = feet / 6080;
   cm = inches * 2.54;
   meters = inches / 39.37;
}
km = meters / 1000;  //  这三条语句不在语句块内。
kradius = km;
mradius = miles;


注释:支持单行注释(//)和多行注释(/* */)


所有变量的声明,定义只能用 var 这种类型,不管是float,double,int,String或者其他的什么类型

var anExpression = 3 * (4 / 5) + 6;
var aSecondExpression = Math.PI * radius * radius;
var aThirdExpression = aSecondExpression + "%" + anExpression;
var aFourthExpression = "(" + aSecondExpression + ") % (" + anExpression + “);


几种声明或者定义的方法(如果不加var的话,会被解释成“全局变量”,这不一定是我们想要的结果哈):

var count;  // 单个声明。(没有初始化值的默认是:undefinedvar count, amount, level;  // 用单个 var 关键字声明的多个声明。
var count = 0, amount = 100;  // 一条语句中的变量声明和初始化。


如果在一个变量的初始化时,不想给它赋值,可以给它赋值为null

var bestAge = null;
注意在 Javascript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN (不是一个数字)。对 null 值和 undefined 值作比较总是相等的。





Javascript中变量的类型?

Javascript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。

主要(基本)数据类型是:

  • 字符串
  • 数值
  • 布尔

复合(引用)数据类型是:

  • 对象
  • 数组

特殊数据类型是:

  • Null
  • Undefined

Undefined 数据类型

如下情况使返回 undefined 值:

  • 对象属性不存在,
  • 声明了变量但从未赋值。

注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。在以下的代码范例中,假设程序员想测试是否已经声明变量 x :

// 这种方法不起作用
if (x == undefined)
    // 作某些操作

// 这个方法同样不起作用- 必须检查
// 字符串 "undefined"
if (typeof(x) == undefined)
    // 作某些操作

// 这个方法有效 if (typeof(x) == "undefined")  // 作某些操作

考虑将 undefined 值与null做比较。

someObject.prop == null;

如下情况时,比较的结果为 true

  • 如果属性 someObject.prop 包含 null 值,
  • 如果属性 someObject.prop 不存在。
  • 要检查一个对象属性是否存在,可以使用新的 in 运算符:
if ("prop" in someObject)
// someObject 有属性 'prop'



== (相等)与 === (严格相等)的区别

== (相等)与 === (严格相等)的区别在于恒等运算符在比较前强制转换不同类型的值。

例如,恒等对字符串 "1" 与数值 1 的比较结果将为 true。而严格相等不强制转换不同类型的值,因此它认为字符串 "1" 与数值 1 不相同。

基本的字符串、数值和布尔值是按值比较的。如果它们的值相同,比较结果为相等。

对象(包括ArrayFunctionStringNumberBooleanError、Date以及RegExp 对象)按引用比较。

即使这些类型的两个变量具有相同的值,只有在它们正好为同一对象时比较结果才为 true。


例如:

// 具有相同值的两个基本字符串。
var string1 = "Hello";
var string2 = "Hello";

// 具有相同值的两个 String 对象。
var StringObject1 = new String(string1);
var StringObject2 = new String(string2);

// 比较结果为 trueif (string1 == string2)
     // 执行某些命令(将要运行的)。

// 比较结果为 falseif (StringObject1 == StringObject2)
    //执行某些命令(不会运行)。

// 要比较 String 对象的值, 
//  toString() 或者 valueOf() 方法。
if (StringObject1.valueOf() == StringObject2)
     //执行某些命令(将要运行的)。


JS基础差不多就简单介绍到这边!!明天再继续进行JS的学习

你可能感兴趣的:(Javascript初识)