JS基本语法

JS基本语法

JS的组成
JS的引入
1.行内式
2.内嵌式
3.外部文件
输入输出语句
变量
变量的声明与赋值
简单数据类型
1.Number
2.Boolean
3.String
4.Undefined
5.Null
获取变量的数据类型
数据类型转换
运算符
流程控制的结构
全局变量与局部变量
对象
作用域链
预解析与运行

JS的组成

JS由三部分组成: 1.ECMAScript:JS的核心语法部分。简单来说就是代码该怎么写,全由ECMAScript决定。 2.DOM:文档对象模型。简单来说就是以document为对象。 3.BOM:浏览器对象模型。简单来说就是以window为对象。

JS的引入

行内式
把js写在你要用的标签里面 比如:
<button type="button" onclick="这里"></button>
内嵌式
直接把js写到html文件中,可以写在head里也可以写在body后面, ```javascript ```
外部文件引入
将js写在一个外部文件中,用link标签进行连接,就像css的外部文件一样
    <link rel="stylesheet" href="这里是链接">

输入输出语句

JS共有四种方式来显示数据

使用 window.alert() 写入警告框
使用 document.write() 写入 HTML 输出
使用 innerHTML 写入 HTML 元素
使用 console.log() 写入浏览器控制台

警示框的使用方法,在你打开网页后会有弹窗出现

<script>
window.alert(5 + 6);
</script>

write,在你点击了按钮后就会出向相应的结果,你如

<button onclick="document.write(5 + 6)"></button>

inner,在网页中会显示出结果

<script>
 document.getElementById("demo").innerHTML = 5 + 6;
</script>

输出在控制台,用F12可以进行查看

<script>
console.log(内容);
</script>

变量

变量,顾名思义,就是用来存储数值的容器

变量的声明与赋值

变量的声明代码如下
var a;

变量的赋值如下

a=1;

当然,声明和赋值可以写在一块,如

var a=1;

在js中,变量的数据尅行是根据其赋的值决定的
而在前面的例子中的a就是标识符

名称可包含字母、数字、下划线和美元符号
名称必须以字母开头
名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
名称对大小写敏感(y 和 Y 是不同的变量)
保留字(比如 JavaScript 的关键词)无法用作变量名称
提示:JavaScript 标识符对大小写敏感。

简单数据类型

简单数据类型包括数字,布尔型,字符串,undefined与Null
Number
数字型包裹整数与浮点型,默认为0 ```javascript var num = 0; //八进制前面加0,十六进制前面加0x //isNaN()用来判断一个变量是否为非数字类型 ```
Boolean
布尔型包括true和false,默认值为false,其中true为1,false为0
var a = true;//a为1
String
字符串型,默认为空,复制时需要引号
var a="字符串";//字符串
var a="10";//10
var a="10"+10;//1010
Undefined
Undefined,出现的原因是声明了变量确未赋值
var x;
console.log(x);//undefined
Null
Null,声明了变量为空值,它的默认值即为null
var a = null;

获取变量的数据类型

可使用 typeof 来确定变量的类型:

typeof 运算符返回变量或表达式的类型:

typeof ""                  // 返回 "string"
typeof 0              // 返回 "num"
等等

数据类型转换

1.字符串型

准换成字符型共有三种方法

var a = 1;alert(a.toString());
var a = 1;alert(String(a));
var a = 1;alert(a + "");//隐式转换

我比较喜欢用第三种,因为方便

2.数字型

var a = parseFloat("0102");	//102
var a = parseFloat("red");	//NaN
var a = parseInt("AF", 16);	//175
var a = '12'-0;//12隐式转换

我仍比较喜欢第四种隐式转换,徐璈注意的是,parseFloat只能转换10进制

其中,数字,布尔,字符串可以进行强制转换

Boolean(value) - 把给定的值转换成 Boolean 型;
Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
String(value) - 把给定的值转换成字符串;

运算符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

流程控制的结构

与C类似,都分为顺序结构,分支结构和循环结构这三种结构

全局变量与局部变量

与C类似

在全局作用域下声明的变量叫做全局变量,它有如下特点:
1.全局变量的代码在任何位置都可以使用
2.在全局作用域下var声明的变量是全局变量
3.特殊情况下,在函数内不使用var声明的变量也是全局变量
在局部作用域下声明的变量叫做局部变量,它有如下特点:
1.局部变量只能在该函数内部使用
2.在函数内部var声明的变量是局部变量
3.函数的形参实际上就是局部变量
二者的区别:
全局变量:在任何一个地方都可以使用,只有在浏览器关闭时才会被销毁,因此比较占内存
局部变量:只在函数内部使用,当其所在的代码块被执行时,会被初始化;当代码块运行结束后,就会被销毁,因此更节省内存空间。

对象

保存一个值时,可以使用变量,保存多个值时,可以使用数组。如果要保存很多很多值,我们往往使用对象。
对象也是变量,js里几乎“所有事物”都是对象。

var obj = {    
     name:"qian",
     toStr:function(value){
        alert("这里是 "+value);
    }
};

上式是对象的一种创建方式

关于对象的具体用法,请看这里

作用域链

作用域链:内部函数访问外部函数的变量,采取的是链式查找的方法来决定取哪个值,这种结构我们称为作用域链,实行就近原则。 例:
var num = 10;
function fn(){
var num = 20;
function fun(){
console.log(num);
}
fun();
}
fn();

最终结果为20

预解析与运行

js引擎运行js分为两步:预解析 代码执行
1)预解析 js引擎会把js里面所有的var还有function提升到当前作用域的最前面
2)代码执行 按照代码书写的顺序从上往下执行
预解析分为变量预解析(变量提升)和函数预解析(函数提升)
1)变量提升 就是把所有的变量声明提升到当前作用域最前面 不提升赋值语句
2)函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值