JS基础

主流浏览器

浏览器组成

浏览器分为两部分:外壳(shell)和内核

  1. shell部分
  2. 内核部分
    1. 渲染引擎(语法规则和渲染)
    2. js引擎
    3. 其他模块

要想成为主流浏览器,必须需要有3%的市场占有率和独自研发的内核

主流浏览器内核
IEtrident
Chromewebkit/blink
firefoxGecko
operapresto
Safariwebkit

js执行队列

在这里插入图片描述

js的特点

  1. 解释型语言
  2. 单线程

js基本语法

变量variable

  1. 变量声明var
    单一var模式:
var a = 10,
	b = 20,
	c = 30,
	d;
  1. 命名规则,大多跟其它语言一样

数据类型

不可改变的原始值(栈)stack

  1. Number
  2. Boolean
  3. String
  4. undefined 就一个值undefined,无定义值
  5. null 表示占位,代表空

栈内存里面的东西复制的是一个副本,二者互不影响

引用值(堆)heap

  1. 数组类型array
  2. Object对象类型
  3. function
  4. …date RegExp

引用值放在栈里的是堆里的地址,复制的是地址,二者可以影响对方

js运算符

+,-,*,/,%

功能与其它语言都差不多
特殊的:-1/0=-Infinity 0/0=NaN

比较运算符

与其他语言一样
特殊的:NaN == NaN==>false

逻辑运算符

跟其它语言不一样,只有短路语句:&& || !
不管返回值,逻辑运算符甚至可以跟表达式
位运算符 & |,用二进制算,相同为1,不同为0

false:

  1. undefined 返回undefinde
  2. null 返回null
  3. NaN 返回NaN
  4. “”(空串)返回""空串
  5. 0 返回0
  6. false 返回false

其它皆为true

返回的都是原本的数据类型,返回的不是布尔值

if和for循环

与Java语言并无二样,格式都一样
continue,break

常用函数

  1. document.write(); 文档流输出
  2. console.log(); 控制台输出
  3. Math.sqrt() 开方
  4. parseInt(""); 是将字符串变成Number
  5. typeof() 获取类型,凡是引用型,皆可返回Object,null也是返回Object
  6. alert(’’);弹窗
  7. toFixed(number):保留指定位的小数位

面向对象编程

JavaScript是半面向对象,半面向过程!

格式

var deng={
	lastName : "Deng",
	age:40
}

类型转换

显示类型转换

即使转换不成功,但它的类型一定会转换成功的!

  1. Number(),转换为数字,null转为0,undefined转为NaN,“a”也是NaN
  2. parseInt(String, radix):把传进来的String字符串以radix为基准进制来将其转换为十进制整形,此方法只能转换数字字符串,“a”或布尔值都会转换为NaN,从左到右开始看,看到非数字位返回!
  3. parseFloat(String):转化为浮点型,看到非小数点以外的非数字位截至返回
  4. String(mix),转换为字符串
  5. Boolean:转换为布尔值
  6. toString(radix),将对象转换为字符串,跟java类似,NaN和undefined不能转换!,radix为目标进制,对象转换为radix进制

隐式类型转换

  1. isNaN(i):先把i拿到房放在Number里面转换,然后在与NaN比较,返回布尔值
  2. ++/-- +/- (一元正负)
    1. ++先调用Number转换为数字
    2. 正负号也是先调用Number将其转换为数字
  3. “+“:隐式调用string(),当加号的两侧有一个字符串,会将其全变为字符串
  4. -,* / % 隐式调用Number()
  5. && || !
  6. > <
  7. == !=
  8. 2>1>3=》false,2>3<1=>true,undefined == null,NaN==NaN=>false,
    1. undefined >0==>false
    2. undefined<0==>false
    3. undefined0>false
    4. null和undefined一样
  9. 不发生隐式类型转化的:===绝对等于,!==绝对不等于

注意

  1. 未定义的变量一经使用,就会报错误,但console.log(type(a));
  2. typeof()返回的类型是string字符串类型
  3. typeof()的使用:
    1. string
    2. 123 number
    3. true/false boolean
    4. [1,2,3],null object
    5. typeof string
‘123’string
123number
true/falseboolean
[1,2,3]/nullobject
typeofstring
NaNnumber

函数

高内聚,弱耦合

var test = function abc(arg1, arg2){
	abc为test.name的值,若为匿名函数,name值为test
	abc为函数的名字,在此,test替换了abc成为了函数的名字
	若用test来接受函数abc,abc()调用会失败!
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值