JavaScript 学习笔记(1)

简介:

1.     何为 Jscript


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

 

局限性:     

1)        不能使用该语言来编写独立运行的应用程序

2)        没有对读写文件的内置支持

3)        只能在某个解释器或  宿主  上运行,如 ASP  Internet 浏览器或者 Windows 脚本宿主

 

JScript 是一种宽松类型语言 , 这意味着我们不必显式定义变量的数据类型。多数情况下, JScript 将根据需要自动进行转换。例如:将数值添加到字符串上时,数值将被转换为字符串(详情见强制转换)。

2.     变量的声明


var count;                 //
 变量声明

var count = 0;           // 变量声明 & 初始化

name = "";                // 隐式声明变量 name ,没有使用关键字 var

 

1)            变量声明之后就置于内存之中,以便后来在脚本中使用

2)            若在 var 语句中变量没有初始化,变量自动取值 undefined  1)

3)            隐式声明的变量拥有全局范围可见度。当在函数中声明一个变量时,该变量不能用于全局范围,所以函数中声明变量必须使用 var 关键

4)            不能使用未经过声明的变量

5)            声明一个变量并进行初始化,但又不想指定任何特殊值,可以赋值为 null 

 

var count = null;

var money = 3 * count;       // money 的值为 0 

 

6)            声明一个变量但没有初始化,其值为 undefined

 

var longth;

var area = 10 * longth;       // area 的值为 NaN ,因为 longth  undefined 


***********************************  

*   JScript 
 null  undefined 的主要区别   *

***************************************

---   null
 是关键字;

undefined  Global 对象的一个属性。

 

---   null 是对象 ( 空对象 没有任何属性和方法 ) 

undefined  undefined 类型的值。

 

document.writeln(typeof null);                   // 输出 object

document.writeln(typeof undefined);         // 输出 undefined

 

---   对象模型中,所有的对象都是 Object 或其子类的实例,但 null 对象例外:

document.writeln(null instanceof Object);// 输出 false

 

---   null“ 等值 (==)”  undefined ,但不  全等值 (===)”  undefined 

document.writeln(null == undefined);                // 输出 true

document.writeln(null === undefined);             // 输出 false

 

---    运算时 null  undefined 都可以被类型转换为 false ,但不等值于 false 

document.writeln(!null);                                   // 输出 true

document.writeln(!undefined);                         // 输出 true

document.writeln(null==false);                        // 输出 false

document.writeln(undefined==false);              // 输出 false

 

 

7)            JScript 是一种区分大小写的语言,因此变量名称 blogjava 和变量名称 blogJava 是不一样的

 

<  1>  undefined

 

undefined 属性 Global (  2) 对象的一个成员,该属性在脚本引擎初始化后可用。

 

如果声明了一个变量但没有初始化,该变量的值就是 undefined 

 

如果没有声明变量,那么就不能将其与 undefined 进行比较,但是可以将该变量的类型与字符串 "undefined" 进行比较。

 

*****  undefined 应用示例 *****

 

var declared;                                    // 声明变量。

if (declared == undefined)                // 测试变量。

  document.write("declared has not been initialized.");

 

if (typeOf(notDeclared) == "undefined")

  document.write("notDeclared has not been defined.");

 

<  2>  Global

 

Global 对象是一个固有对象 (  3) ,把所有全局方法集中在一个对象中。

 

Global 不能用 new 运算符创建。它在 JScripting 引擎被初始化时创建,并立即使其方法和属性可用。

 

***** Global 属性 *****

 

1)        Infinity :返回 Number.POSITIVE_INFINITY 的初始值

   POSITIVE_INFINITY 属性返回比在 JScript 中能够表示的最大的数 (Number.MAX_VALUE) 更大的值。

   JScript  POSITIVE_INFINITY 值显示为 infinity, 该值数学上的作用与正无穷相同。
 

 与之相对, NEGATIVE_INFINITY 属性返回比 JScript 能够表示的最小负数( -Number.MAX_VALUE )更小的值。

   JScript  NEGATIVE_INFINITY 值显示为 -infinity, 该值数学上的作用与负无穷相同。

 可以看出 POSITIVE_INFINITY  NEGATIVE_INFINITY 都是 Number 对象的属性, Number 对象最主要的用途是将其属性集中到一个对象中,以及使数字能够通过 toString 方法转换为字符串。

 

Number 属性

Number 方法

MAX_VALUE

toLocaleString

MIN_VALUE

NaN

toString

NEGATIVE_INFINITY

POSITIVE_INFINITY

valueOf

constructor

prototype

 

2)        NaN :返回特殊值 NaN ,表示表达式不是数字

 相关方法: isNan( numValue )

          返回一个 Boolean 值,指明提供的值 (numValue) 是否是保留值 NaN ( 不是数字 ) ,即判断是否为数字。

          如果值是 NaN  那么 isNaN 函数返回 true ,否则返回 false 
          
 使用这个函数的典型情况是检查 parseInt  parseFloat 方法的返回值。

          还有一种办法,变量可以与它自身进行比较。 如果比较的结果不等,那么它就是 NaN  这是因为 NaN 是唯一与自身不等的值。

 

***** Global 方法 *****

 

Global

方法

escape

eval

isFinite

isNaN

parseFloat

parseInt

unescape

 

<  3>  固有对象

 

固有对象是作为标准 JScript 语言一部分的一种对象。所有的脚本都可以使用这种对象。 JScript 中的固有对象:

固有对象

Array

Boolean

Date

Function

Global

Math

Number

Object

RegExp

Regular

Expression

String

  

3.     强制转换


 Jscript 中,可以对不同类型的值执行运算, JScript 解释器自动将数据类型之一改变 ( 强制转换 ) 为另一种数据类型,然后执行运算。

 

运算

结果

数值与字符串相加

将数值强制转换为字符串

布尔值与字符串相加

将布尔值强制转换为字符串

数值与布尔值相加

将布尔值强制转换为数值

 

 

***** 强制转换示例 *****

var year = 2008;                 // 一个数字

var hello = "Hello ";             // 一个字符串

hello = hello + year;            // 将数字强制转换为字符串

document.write(hello);        // 输出 Hello 2008

要想显示的将字符串转换为数字可使用方法 parseInt()  parseFloat() 

4.     JScript 的数据类型

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

主要(基本)数据类型: 
      
字符串
    
 
数值
    
 
布尔

复合(引用)数据类型: 
      
 对象 
      
 数组

特殊数据类型: 
      
 Null 
      
 
Undefined 

1.        字符串

1)        字符串中可以包含双引号,该双引号两边需加单引号,
 字符串中可以包含单引号,该单引号两边需加双引号。

"I’m Ma Jia nan."

'"good good study, day day up", my teacher said.'

 

2)        JScript 中没有表示单个字符的类型(如 C++  char )。要表示 Jscript 中的单个字符,应创建一个只包含一个字符的字符串。包含零个字符( "" 的字符串是空(零长度)字符串

 

2.        数值类型

 Jscript 中整数和浮点值没有差别; JScript 数值可以是其中任意一种( JScript 内部将所有的数值表示为浮点值)。

      

1)        整型

八进制和十六进制数可以为负,但不能有小数位,同时不能以科学计数法(指数)表示。

2)        JScript 包含特殊值数字: 
NaN( 不是数)。当对不适当的数据进行数学运算时使用,例如字符串或未定义值。 
正无穷大。在JScript中如果一个正数太大的话使用它来表示。 
负无穷大。在JScript中如果一个负数太大的话使用它来表示。 
正0和负0。Jscript区分正0和负0。 

3.        boolean

任何值为 0  null 、未定义(undefined)或空字符串的表达式被解释为false。其他任意值的表达式解释为true

 

4.        Null 数据类型

1)         Jscript 中数据类型 null 只有一个值: null 。关键字 null 不能用作函数或变量的名称。

2)        包含 null 的变量包含  无值    无对象  。换句话说,该变量没有保存有效的数、字符串、 boolean 、数组或对象。

3)        Jscript 中, null  不相等(与在  C++ 中不同)。同时应该指出的是, Jscript  typeof 运算符将报告 null 值为 Object 类型,而非类型 null 。这点潜在的混淆是为了向下兼容。

5.        Undefined 数据类型

如下情况使返回 undefined 值:

¨        对象属性不存在,

¨        声明了变量但从未赋值。

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

      //方法不起作用 
      
if( x == undefined)
            //do sth
      
   //方法不起作用,必须检查字符串"undefined"
   if(typeof(x) == undefined)
      // do sth

   //方法有效
   if(typeof(x) == "undefined")
      //do sth

考虑将 undefined 值与 null 做比较。        
someObject.prop == null;
    
  如下情况时,比较的结果为 true :
       如果属性 someObject.prop 包含 null 
      
 
如果属性 someObject.prop 不存在
要检查一个对象属性是否存在,可以使用新的
 in  4) 运算符: 
if("prop" in someObject)
//someObject有属性prop

<  4>  in 运算符

result propertyinobject

in 操作检查对象中是否有名为 property 的属性。 

 <to be continued ... ...>

本文转自BlogJavaOo缘来是你oO的博客,原文链接:JavaScript 学习笔记(1),如需转载请自行联系原博主。

相关文章
|
1月前
|
JavaScript
ES6学习(9)js中的new实现
ES6学习(9)js中的new实现
|
7天前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
8天前
|
JavaScript 前端开发 API
紧跟月影大佬的步伐,一起来学习如何写好JS(上)
该文章跟随月影老师的指导,探讨了编写优质JavaScript代码的三大原则:各司其职、组件封装与过程抽象,通过具体示例讲解了如何在实际开发中应用这些原则以提高代码质量和可维护性。
紧跟月影大佬的步伐,一起来学习如何写好JS(上)
|
6天前
|
JavaScript 前端开发 Oracle
软件工程师,学习下JavaScript ES6新特性吧
软件工程师,学习下JavaScript ES6新特性吧
26 9
|
6天前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
8天前
|
JavaScript 前端开发 算法
紧跟月影大佬的步伐,一起来学习如何写好JS(下)
该文章延续了上篇的内容,进一步探讨了编写优秀JavaScript代码的实践,强调了代码风格一致性、性能优化、团队约定的重要性,并通过实际案例分析了如何在不同场景下写出合适的代码。
|
2月前
|
JSON 前端开发 JavaScript
|
26天前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
23天前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
2月前
|
JavaScript 前端开发 iOS开发
学习强大的JavaScript一行代码,能够节省你的时间和代码量
这段内容介绍了25个实用的JavaScript一行代码技巧,涵盖复制内容到剪贴板、打乱数组、颜色值转换、计算平均值、检查数字奇偶性、数组去重、对象为空检测、字符串反转、日期计算、首字母大写、生成随机字符串、四舍五入、清除Cookie、检测暗黑模式等,帮助开发者提高效率并简化代码。
26 2