概述:JavaScript是一门脚本语言(web相关),需要浏览器的支持(解析器 谷歌v8引擎),JavaScript是一个弱语言(没有绝对的语法 他的数据类型定义不是由对应的修饰符来定义 而是根据对应的值来定义的(值什么类型变量就是什么类型)),JavaScript里面由三个内容构成,BOM(浏览器对象模型 操作浏览器),DOM(文档对象模型 操作html文档的),ECMAScript(语法规范 es3 (兼容各大主流浏览器)es5(兼容普通版本浏览器) es6 (兼容相关的高版本浏览器))
JavaScript书写位置
1. 内嵌
<!-- 不常用的写法 -->
<div onclick="alert(123)">点我弹窗</div>
2. 内联
写在script标签中,可以放在任何地方 建议放在html后面
<script>
var a = 10 //a被定义了 他的值是10 数值类型
var b = 'a' //b被定义了 他的值是a字符串 字符串类型
alert(a)
</script>
3. 外联
通过script标签的src引入
<!-- 外联 -->
<script src="./hello.js"></script>
JavaScript的代码执行顺序
按照从上到下按照对应的文档流执行
变量定义
采用var关键词来修饰的 (也可以不用 默认以var关键词修饰 变量提升 伪全局变量)
变量命名的注意事项
- 语义化命名(见名知意)
- 不能使用关键字和保留字
--- | --- | --- | --- | --- |
---|---|---|---|---|
abstract | arguments | boolean | break | byte |
case | catch | char | class* | const |
continue | debugger | default | delete | do |
double | else | enum* | eval | export* |
extends* | false | final | finally | float |
for | function | goto | if | implements |
import* | in | instanceof | int | interface |
let | long | native | new | null |
package | private | protected | public | return |
short | static | super* | switch | synchronized |
this | throw | throws | transient | true |
try | typeof | var | void | volatile |
while | with | yield |
3.使用驼峰命名法(第一个首字母小写以后的首字母大写)
var userName = 值
4.不能以数字开头(构成可以由数字字母下划线以及$符号)
var user_name = 值
JavaScript的数据类型
JavaScript的数据由他的值来决定的
基础数据类型
数值类型 number
var number = 10
字符串类型 string
单引号和双引号表示的都是字符串
var str = '字符串'
var str = "字符串"
布尔类型 boolean
true 真 false 假
var isTrue = true
未定义类型 undefined
当前没有给值,undefined是null的衍生
var a
console.log(a)
空类型 null
只有在null值的情况下才为null类型
var isNull = null
console.log(isNull)
引用数据类型
对象地址分配的 可以变的
object array function ...
JavaScript的注释
注释是用于标识当前的代码片段的意义 方便之后的开发者进行维护(不会被编译)
单行注释 (注释一行)ctrl+/
// 我是注释
多行注释 (注释多行 ) shift+alt+a
/**
* 这个是一个多行注释
*
*
*
* /
typeof
用于判断对应的数据类型(检索对应的数据类型)返回对应的数据类型的英文名(字符串)
typeof 变量 //返回对应的数据类型的英文
var str = '字符串'
var number = 10
var is = true
var un
var isNull = null
console.log(typeof str);//string
console.log(typeof number);//number
console.log(typeof is);//boolean
console.log(typeof un);//undefined
console.log(typeof isNull);//null返回的是object null是一个空对象引用
// typeof的typeof是string
console.log(typeof typeof isNull);//null返回的是object null是一个空对象引用
typeof null 返回的是一个object的字符串其他返回的是对应的类型的字符串
function 返回的是function object返回的是object array返回的也是一个object
类型转换
数据类型大的转小的是显式转换 小的转大的是隐式转换
string>number>boolean>undefined
任意类型转字符串
toString方法调用(undefined不能使用) String方法调用
var number = 10
var str = number.toString()
var str1 = String(number)
console.log(typeof str)
console.log(typeof str1)
var bl = true
var strBl = bl.toString()
var strBl1 = String(bl)
console.log(typeof strBl);
console.log(typeof strBl1);
//undefined是不能调用toString
var un
// var unStr = un.toString() //报错
var unStr = String(un)
console.log(typeof unStr)
任意类型转number类型
使用number方法转换
使用parseInt 或者parseFloat (截取)
var str = '123'
var number1 = Number(str)
console.log(number1)
var str1 = '12.1a3a'
var number2 = Number(str1)
// not a number 当出现无法转换的内容的时候 会出现NaN NaN是属于number类型的
console.log(number2)
console.log(typeof number2)
// parseInt 转换为整型 parseFloat 转换浮点类型
//从前面开始截取能够转换的数值 如果前面没有可以转换的数值那么结果就是NaN
var number3 = parseInt(str1)
console.log(number3);
var number4 = parseFloat(str1)
console.log(number4);
//转换布尔类型的时候 true会转成1 false会转成0
var bool = false
var number5 = Number(bool)
console.log(number5);
//und无法转换为number 会出现NaN的值
var und
var number6 = Number(und)
console.log(number6)
//null转为number类型会出现0
var n = null
var number7 = Number(n)
console.log(number7);