js:
全称:javascript
java:服务器端语言
二者没有关系
1.由来
网景公司:
开发浏览器
统一标准:
javascript:
ECMAScript:核心js
dom:document object model
文档对象类型
事件:事件监听
js:
html
|
body. head
| |
div meta title
bom:browser object model
浏览器对象模型
alert();//浏览器弹框
2.特点
1>脚本语言
特点:
本身具有逻辑能力和行为能力
需要解析执行
2>解释性语言
需要js的解析器
默认:浏览器中内置的js解析器
node:js解析器(运行环境)
3>弱类型语言
java:强类型语言 语法要求严格
int a=10;
a=‘hello’;//报错
js:弱类型语言 语法要求相对宽松
var a=10;//number
a=‘hello’;//string
4>从上到下依次执行(按照解析顺序从上到下)
优先解析函数的声明,再解析使用var操作符所声明的变量
解析
执行
5>大小写敏感
3.使用
1>node
js运行环境:谷歌浏览器内置js解析器
repl(不适合写长代码):
r:read 读取
e:evel 解析/运算
p:print 打印
l:loop 循环
命令:
ls->程序
ls:命令对应了一个程序
node:
/opt/node/bin:node
有一个node程序执行命令
node index.js
2>浏览器
js-html
1)内联脚本
标签
2)外部引入
创建一个外部的脚本文件
.js为后缀名的文件
注意:
外部引入脚本的script标签内部不能再写js代码,如果写了,解析器会忽略
4.基础语法
1>变量的声明
es5:
var a=10;
(变量的声明和赋值是从右向左赋值的)
标识符规则:
1)由字母、数字、下划线以及$组成
var one_two=10;
var $terry=“hello”;
2)不能以数字开头
3)不能使用关键字和保留字
关键字:
在js中具有特殊意义
保留字:
即将成为/有可能成为关键字的特殊字符
int a=10;
4)建议使用驼峰式命名
var firstnameandlastname=‘张三’;
从第二个单词开始首字母大写
var firstNameAndLastName=‘张三’;
声明方式:
函数内部声明的变量不能在外部调用
var a;//变量的声明,不进行赋值
a=10;//从内存中获取a变量并赋值为10;
var a=10;//变量的声明并赋值
a=30;//变量的声明并赋值
var a=10,b=20,c=30;//同时声明多个变量
es6:
let
使用let声明的变量只在当前作用域块内有效
不能使用let重复声明变量(当前作用域内),不在同一作用域内可以重复声明
不会对let声明的变量进行解析提升
const
对于使用const声明的变量,只在当前作用域内有效
使用const声明一个变量,一旦声明不可修改,不在同一作用域内可以重复声明
当属性值为引用数据类型时,引用地址不变,内容可变
2>注释
//单行注释内容 没有结尾
/多行注释内容/ 多行注释
作用:便于维护和管理
嵌套:单行注释可以嵌套
3>语句
每一个语句建议使用分号结尾
5.局部变量和全局变量
作用域:
var a=10;
全局变量:
js的全局作用域内都能使用的变量
局部作用域:
js中函数内部
只要声明在函数内部,并且使用了var操作符的变量即为局部变量;其他声明为全局变量
let const 基本同理
6.数据类型
typeof(a):测试a变量的数据类型
返回值:undefined
object(null/object)
number
boolean
string
function
返回值的数据类型:string
typeof a
6种数据类型
5种基本数据类型(简单数据类型)
undefined:
栈区基本数据类型,代表未定义
1>var a; a的数据类型和值都为undefined
2>var a=undefined; a的数据类型和值都为undefined
3>既没有声明也没有赋值的变量 值报错,数据类型undefined
null:
空引用数据类型
var a=null;
当前变量即将指向一个引用数据类型,但此时未指向
typeof a :object
注意:undefined派生自null
null==undefined:true
number:
所有数值类型均为number类型
var a=10;
var a=10.5;
var a=0xa; 十六进制
var a=010; 八进制
NaN:not a number
var sum=“hello”/10;
NaN不是一个数,但它数据类型是number
isNaN(sum):
返回sum变量是不是不是一个数
isNaN(10):
false:不,它是一个数
isNaN(“hello”):
true:是,它不是一个数
对于number类型:false
对于非number类型:true
infinity:
无穷大 number类型
var a=10/0;//infinity
var a=-10/0;//-infinity负无穷
isFinite(a);
测试a变量是否为无穷大数
true:不是无穷大的数
false:是无穷大的数
boolean:
true
false
string:
所有使用了双引号或单引号包裹的字符,都为string类型
var a=“undefined”;
JS基础笔记
最新推荐文章于 2024-09-11 15:33:18 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)