▊ JS初见
▍ JavaScript是什么?
- 是一种运行在客户端的脚本语言
- 不需要编译,运行过程中由js解释器(js引擎)逐行解释并执行
- 可以基于Node.js技术进行服务端编程
▍浏览器怎样执行JS?
浏览器分成两部分:渲染引擎和JS引擎
▶ 渲染引擎:用来解释HTML和CSS,俗称内核(比如chrome浏览器的blink)
▶ JS引擎:也称为JS解释器,用来读取网页中的JavaScript代码,对其处理后运行(如chrome浏览器的V8)
▍JS的组成?
三部分:
- ECMAScript —— 规定JS的编程语法和基础核心知识,共同遵守
- DOM —— Document Object Model,文档对象模型;(操作页面元素:大小、颜色、位置…)
- BOM —— Browser Object Model,浏览器对象模型;(弹出框、浏览器跳转…)
▍三种书写位置——行内式、内嵌式、外部式(和CSS的style标签一样)
▍注释(其实和Java一样…)
// 单行注释
/* 多行注释
多行注释 */
▍输入输出语句
prompt(info) |
浏览器弹出输入框 |
alert(msg) |
浏览器弹出警示框 |
console.log(msg) |
浏览器控制台打印输出信息 |
▊ 变量
▍ 什么是变量?
这是一个老生常谈的重要思想:变量就是存放数据的容器。
声明(var age;
) 赋值( age = 12;
) 是初始化(var age = 12;
)的两个部分
▍ 一些细节
var myname = 'loli',
age = 12; // 一次给多个变量赋值
var x;
console.log(x); // 只声明不赋值:x的值为undefined
y = 12;
console.log(y); // 只赋值不声明:这是可以的,就和python一样
console.log(z); // 报错!
▊ 数据类型
▍ 为什么需要数据类型?
☀ 为了充分利用计算机的存储空间。
▍ 变量的数据类型
JavaScript不是强类型的语言!而是弱类型的,或者说是动态语言
这意味着代码在运行过程中,JS引擎根据变量值自动确定类型,而且是可变的!
▍ 数据类型的分类
▶ 简单数据类型
简单数据类型 | 默认值 | |
---|---|---|
number | 数字型,包含整型和浮点型 | 0 |
boolean | 布尔型 | false |
string | 字符串型 | "" |
undefined | 未定义数据类型 | undefined |
null | 空值,实际上是个对象(object); | null |
注:
- 二进制
0b1010
;八进制023
;十六进制0xc3
; - 数字型最大值最小值
Number.MAX_VALUE; Number.MIN_VALUE;
- 特殊:
Infinity
(无穷大);-Infinity
(无穷小);NaN
(Not a number)(非数值) isNaN()
方法用来判断非数字:如果不是数字返回true,是数字返回false- 对于字符串型String,单、双引号都可;JS推荐单引号
- 获取字符串长度
str.length
- 字符串拼接:
'Loli' + 'suki'
;'Loli'+12
;'Loli'+true
;'Loli'+undefined
;'Loli'+null
都会被视为字符串 - 格式化输出:
console.log('She is' + age);
3 + true + false
的值为4undefined + 1
的值为NaN,undefined + true
的值也为NaN- 实际上,
undefined
除了与字符串相加被转换为字符串型,与其他任何类型相加都是NaN
null + 1
的值为1,null + true
的值为1,null + null
的值为0
▍ 获取数据类型
var v = 12;
console.log(typeof v); // 返回number
var v = null;
console.log(typeof v); // 返回object
不妨用新学的typeof
做个小测试:
var age = prompt('Please enter your age :');
console.log(typeof age);
发现输入的12,返回的竟然是string;这说明prompt
取来的输入是字符串型的——这与python的input完全一致
▍ 数据类型转换
转换为字符串: .toString()
String()
+‘’
隐式转换
转化为数字型:parseInt()
parseFloat()
Number()
'3' - 0; '3' * 1; '3' / 1
隐式转换
转化为布尔型:Boolean()
注:
parseInt('120px')
返回的是数字型的120——会去掉单位(末尾的字母)(parseFloat()
也可以)- 空字符串、0、NaN、undefined、null转化为布尔值都为false
☀ Loli & JS
♫ Saikou