JavaScript基础知识整理(ES5,不含ES6)

这篇博客详细梳理了JavaScript的基础知识,包括数据类型、undefined、null、NaN的区分,typeof和constructor的用法,全局与局部变量的概念,以及如何显示数据。还讨论了==与===的区别,不同类型的循环,以及break、continue和return的用法。此外,介绍了JavaScript的变量提升、严格模式和this的初步概念,同时提到了JSON操作和代码规范的重要性,最后简要提及了闭包的作用。
摘要由CSDN通过智能技术生成

JavaScript 使用 Unicode 字符集。
JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定。

1、JavaScript数据类型

5种数据类型:

  • string
  • number
  • boolean
  • object
  • function

3中对象类型:

  • Object
  • Date
  • Array

2个不包含任何值的数据类型

  • null
  • undefined

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。)。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。

2、undefined,nulll,NaN

  • null用于对象,undefined用于变量、属性和方法
  • 对象只有被定义才是null,否则是undefined
  • NaN的数据类型是number,null的数据类型是object,未定义变量的数据类型是undefined
  • 未使用值来声明的变量(声明无值的变量),其值实际上是 undefined。
  • 任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.
  • null 和 undefined 的值相等,但类型不等:
typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true
  • 对象只有被定义才有可能为 null,否则为 undefined。

检测对象是否存在:

if(typeof myObj!==undefinded && myObj!==null)

3、typeof 、constructor

typeof
检测变量的数据类型。返回值是字符串。只能返回基础数据类型:string,number,Boolean,undefined,function,object。

  • NaN 的数据类型是 number
  • 数组(Array)的数据类型是 object
  • 日期(Date)的数据类型为 object
  • null 的数据类型是 object
  • 未定义变量的数据类型为 undefined

**constructor **
constructor 属性返回所有 JavaScript 变量的构造函数。

4、全局变量,局部变量

变量用于存储数据值。变量是一个名称。

在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。全局变量会在页面关闭后被删除。

在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。

  • 变量必须以字母开头
  • 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
  • 变量名称对大小写敏感(y 和 Y 是不同的变量)

变量生命周期:
JavaScript 变量的生命期从它们被声明的时间开始。

局部变量会在函数运行以后被删除。

全局变量会在页面关闭后被删除。

5、JavaScript 显示数据

JavaScript 可以通过不同的方式来输出数据:

  • 使用 window.alert() 弹出警告框。
  • 使用 document.write() 方法将内容写到 HTML 文档中。
  • 使用 innerHTML 写入到 HTML 元素。
  • 使用 console.log() 写入到浏览器的控制台。

6、字面量

在编程语言中,一般固定值称为字面量。

  • 数字(Number)字面量
  • 字符串(String)字面量
  • 表达式字面量
  • 数组(Array)字面量
  • 对象(Object)字面量
  • 函数(Function)字面量

变量用于存储数据值。变量是一个名称。字面量是一个值。

7、== 和 ===

  • === 绝对等于(值和类型均相等),==比较值相等即可;
  • !== 不绝对等于(值和类型有一个不相等,或两个都不相等)
  • switch中使用的是绝对等于(===)来做判断的

switch 语句会使用恒等计算符(===)进行比较:

var x = 10;
switch(x) {
    case "10": alert("Hello");//不会会执行这段代码
}

//---------
var x = 10;
switch(x) {
    case 10: alert("Hello");//会执行这段代码
}

8、不同类型的循环

  • for - 循环代码块一定的次数
  • for/in - 循环遍历对象的属性
  • while - 当指定的条件为 true 时循环指定的代码块
  • do/while - 同样当指定的条件为 true 时循环指定的代码块

9、break,continue,return

break 语句用于跳出循环。break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)

continue 用于跳过循环中的一个迭代。continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。

return用于返回, 在代码块最后一行。JavaScript 默认是在代码的最后一行自动结束。

function myFunction(a) {
    var
    power = 10;  
    return a * power;
}

//---------------
function myFunction(a) {
    var
    power = 10;  
    return  //等价于return;
    a * power;
}
//返回undefined

JavaScript 变量提升

变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。
JavaScript 初始化不会提升:

var x = 5; // 初始化 x
var y = 7; // 初始化 y
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x + " " + y;           // 显示 x 和 y
//-----------------------
var x = 5; // 初始化 x
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x + " " + y;           // 显示 x 和 y yundefined
var y = 7; // 初始化 y

// y 输出了 undefined,这是因为变量声明 (var y) 提升了,但是初始化(y = 7) 并不会提升,所以 y 变量是一个未定义的变量。

严格模式

待补充。。。

this

待补充。。。

JavaScript Json

使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象
JSON.stringify()将JavaScript值转换为Json字符串

void(0)

void(0) 计算为 0
href="#"与href="javascript:void(0)"的区别:
#:包含了一个位置信息,默认的锚是#top 也就是网页的上端。
而javascript:void(0), 仅仅表示一个死链接。
在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
如果你要定义一个死链接请使用 javascript:void(0) 。

代码规范

  • 变量名推荐使用驼峰法来命名(camelCase):
  • 通常运算符 ( = + - * / ) 前后需要添加空格:
  • 通常使用 4 个空格符号来缩进代码块,不推荐使用 TAB 键来缩进,因为不同编辑器 TAB 键的解析不一样。
  • 简单预计:一条语句通常以分号作为结束符。
  • 复杂语句的通用规则:将左花括号放在第一行的结尾。左花括号前添加一空格。将右花括号独立放在一行。不要以分号结束一个复杂的声明。
  • 对象定义的规则:将左花括号与类名放在同一行。冒号与属性值间有个空格。字符串使用双引号,数字不需要。最后一个属性-值对后面不要添加逗号。将右花括号独立放在一行,并以分号作为结束符号。
  • 每行代码字符小于 80,便于阅读,可以适量增减。
  • 命名规则:全局变量为大写 (UPPERCASE );常量 (如 PI) 为大写 (UPPERCASE );变量和函数为小驼峰法标识, 即除第一个单词之外,其他单词首字母大写( lowerCamelCase)
  • 使用小写文件名:大多 Web 服务器 (Apache, Unix) 对大小写敏感: london.jpg 不能通过 London.jpg 访问。其他 Web 服务器 (Microsoft, IIS) 对大小写不敏感: london.jpg 可以通过 London.jpg 或 london.jpg 访问。必须保持统一的风格,建议统一使用小写的文件名。

闭包

JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。
闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。

未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值