JavaScript知识点总结1

1.js=ECMA+DOM+BOM

ECMA:js语言核心语法

DOM(Document Object Model)标准:专门操作网页内容的标准;

BOM(Browser Object Model):操作浏览器窗口的编程接口。

js是脚本程序,脚本程序:不需要预编译,边解释边执行的程序。

2.程序运行js代码时,一次引擎加载处理过程中,只要发生错误,错误即之后代码都不执行。

3.仅声明未赋值的变量,默认自动为:undefined;

使用未声明变量时,出现错误:not defined;

4.声明提前

在程序正式执行前,都会将所有 var 声明的变量提前到开始位置,集中创建,而赋值过程留在原地。

5.数据类型

分类:1)原始类型:值保存在变量本地;(Number、String、Boolean、undefined、null)

           2)引用类型:值保存在变量本地;Object(JS中除了原始数据类型以外的都是对象,function、Array、data、正则等)

(1)Number

         所占空间与数值大小无关,都占8字节。

         舍入误差:计算机有些数无法精确表示;解决方法:对结算结果进行保留两位小数的四舍五入,n.toFixed(2)。

(2)String

         一个字母、标点,占1个字节;  一个汉字,占2个字节。

        字符串内容一旦创建,不可改变。要想改变,只能创建新字符串,替换旧字符串。

        如果参与 + 运算的值中包含字符串类型数据,+ 法运算自动变为字符串拼接。
6.变量 vs 数据库

js中的变量:存储在内存中,临时的,存在客户端;

数据库:硬盘上存储数据的文件,持久的,服务器端。

7.数据类型转换(js是弱类型语言)

(1)隐式转换:无需程序员干扰,js 程序自动完成类型转换。

在 js 程序中,任何地方所需某种类型的数据,若提供的不是,则程序自动进行隐式类型转换。

仅影响表达式的运算结果,不影响变量中存储的实际值。

算数运算中的隐式转换:

  1. 算数计算中(-,*,/),一切类型都隐式转换为number类型,再计算。例:"2"—>2; true/false—>1/0;
  2. 特例:+ 运算中,只要有一方是字符串,俩数据都转为字符串,且 + 运算变为字符串拼接。字符串 + 任何类型 = 新字符串

表达式:从左至右,两两计算。

(2)强制类型转换:程序员主动改变数据类型。

1.任意类型 to String:

1) var str = x.toString();js中一切对象都有 toString 方法

2) var str = String(x);—> 隐式转换的本质,程序需要时,自动调用。

3)加号拼接字符串;(隐式转换)字符串 + 任何类型 = 新字符串

2.任意类型 to Number:

1) 任意类型 to Number:var n = Number(x);—> 隐式转换

2) String to Number:

    var n = parseInt(str);原理:从str开始位置逐个读取每个字符知道碰到第一个不是数字的字符(包括小数点)时停止。

    var n = parseFloat(str);原理:同上;能识别小数点。

特例:Number(" ")—> 0;空字符串转换成0。

3)任意类型 to Number:隐式转换(-,*,/)

3.任意类型 to Boolean:

    var bool = Boolean(x);—> 隐式转换

    " "  NaN  undefined  null  0 —> false;

    其余 —> true。

******凡是从页面获取的一切数据都是字符串类型******

8.算术运算中的 "++"

++n:先+,再执行;

n++:先执行,再+。

如下图所示,r1=10;r2=11;两中情况下 n=5 不变。

var n=2;
var r1=n++ + ++n + n++;
var r2=++n + n++ + ++n;

9.关系运算

将所有类型转为 number 类型(隐式转换),再比较。

(1)两字符串比较:一次比较每一位字符的Unicode

(2)NaN:NaN 不等于任何数据(包括自身)。

isNaN(num):专门判断 num 是否是 NaN。只要判断一个数值是否是数字或能否被转为数字,都用 isNaN 。

(3)undefined vs null

实质是一样的,undefined == null  (返回true);但是,undefined === null (返回false);

===全等:先比较数据类型,再比较值(不带隐式转换)。不希望关系运算中自动隐式转换时使用。

(4)逻辑运算(与或非)、位运算(左右移)、扩展运算(+=)、三目运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值