文章目录

  • 基础语法
    • JavaScript的位置
    • 预前知识
      • 注释
      • 原则
      • 字面量、变量、标识符
      • Unicode编码
    • 数据类型
      • 字符串
      • 数值
      • 布尔值
      • NULL
      • UNDEFINED
      • 强制转换String
      • 强制转换Number
      • 其他进制数字
      • 强制转换Boolean
    • 运算符
      • 算数运算符
        • \+
        • \- \* \/ \%
      • 一元运算符
        • \+ \-
        • 自增和自减
      • 逻辑运算符
        • 布尔值运算
        • 非布尔值与或运算
      • 赋值运算符
      • 关系运算符
      • 相等运算符
      • 条件运算符
      • 运算符的优先级
    • 语句与代码块
      • 流程控制语句
        • if
        • switch
        • while
        • for
        • break和continue

2019年7月15日22:16:40 开始学习JavaScript。

资源:bilibili/av34087791。

基础语法

JavaScript的位置

  • 在body前,放在script中。

<script type=“text/javascript”>
/* js代码; */
</script>

  • 在body内,可放在标签的属性中。

如button的 οnclick=“alert(‘点击button响应字符串同时信息’)”
如超链接中 href=“javascript:alert(‘字符串’)”

虽然可以写在标签的属性中,但是不方便维护;因此可以将js代码写在tittle中或外部js文件中

  • 外部js文件,通过script标签引入。

<script type=“text/javascript” scr=“js/script.js”> (中间无需写代码,写也会被忽略) </script>

预前知识

注释

/*
多行注释
*/

//单行注释

原则

1.JS严格区分大小写;
2.JS中每一条语句以分号(;)结尾;
3.JS忽略多个空格和换行

字面量、变量、标识符

字面量是一些不可改变的值,比如1 2 3 4 5;但一般不直接使用字面量。

变量可以改变值,用变量保存字面量的值。使用var声明一个变量。

var a;

a = 123;

var a = 456;

标识符是JS中可以自主命名的东西。例如:变量名、函数名、属性名。标识符中可以含有字母、数字、_、$。标识符不能以数字开头。标识符不能是ES中的关键字或保留字。

标识符一般采用驼峰命名法。

  • 首字母小写,每个单词开头字母大写,其余字母小写,如helloWorld。

  • JS底层保存标识符时实际上采用的是Unicode编码,所以理论上讲,所有的utf-8中含有的内容都可以作为标识符。

Unicode编码

console.log("\u0031")

  • \u + 十六进制。

在网页中,是 &# + 十进制。

数据类型

数据类型就是字面量的类型。

基本数据类型:

  • String
  • Number
  • Boolean
  • Null
  • Undefined

引用数据类型:

  • Object

字符串

var str = “hello”;

使用 \ 进行转义。

可以使用typeof检测变量的类型。

console.log(typeof a);

数值

Number包括整数和浮点数。

Number.MAX_VALUE

如果数值超过Number.MAX_VALUE时,会返回Infinity。类型是number。

NAN

NAN表示not a number,类型是number。

Number.MIN_VALUE

返回最小值,能表示的最小的正小数。

  • 如果使用JS进行浮点运算,可能得到一个不精确的结果;所以千万不要使用JS进行对精确度要求比较高的运算。

布尔值

只有true与false两个值。

var bool = true;

NULL

NULL只用一个值null。

var a = null;

NULL专门用来空的对象。

使用typeof返回null值时,会返回’object’。

UNDEFINED

声明了没赋值的变量。

var a;

var b = undefined;

使用typeof,会返回’undefined’。

强制转换String

  • 方式一:toString()方法。

注意,null、undefined没有toString()方法。

a = a.toString();

  • 方式二:String()函数。

注意,对于number和boolean,就是调用toString()。

a = null;
a = String(a);

强制转换Number

  • 方式一:Number()函数。

注意,字符串转数字:

  1. 纯数字字符串正常;
  2. 如果有非数字内容,转换为NaN;
  3. 如果字符串是一个空串或者全是空格,则转换为0;
  4. 对于Boolean,true转为1,false转为0;
  5. 对于null,转为0;
  6. 对于undefined,转为NaN。
  • 方式二:parseInt()、parseFloat(),专门用来对付字符串。

a = “123px”;
a = parseInt(a);
b = “456.789”;
b = parseInt(b);

a = 123 b= 456

c = “123.456.789”;
c = parseFloat©;

c = 123.456

其他进制数字

16进制,0x开头。

a = 0x10;

a = 0xCafe;

输出是都会转换成十进制输出。

8进制,0开头。

b = 070;

2进制,0b开头,但不是所有浏览器都支持。

c = 0b11;

parseInt(对象,参数1),参数1指定进制数。

parseInt(a, 10);

强制转换Boolean

Boolean()函数。

  • 数字除了0和NaN,其余都是true;
  • 字符串除了空串,其余都是true;
  • null和undefined都是false。

运算符

算数运算符

  • 对于Number和非Number的运算,转换为Number后运算。(除了字符串加法)
+

var a = “锄禾日当午”+
“汗滴禾下土”;

任何值和字符串加法运算,都会转换成字符串。并进行拼串。

result = 1;
console.log("result = " + result);

因此可以进行隐式数据转换,转换为String。

var c = null;
c = c + “”;

- * / %

只有+是转为字符串,其余的运算符都是转为Number。

var result = 100 - “1”;

因此可以进行隐式数据转换,转换为Number。

var c = “123” - 0;

%是取余数。

一元运算符

只需要一个操作数。

+ -

正好对数字无影响,负号取反。负号对于非Number,先转为Number。

a = true;
a = -a;

则,a = -1

自增和自减

a++;
++a;

逻辑运算符

布尔值运算

!、&&与||。

a = !a;

var b = true && true;

var c = true || false;

注意这里的短路功能。

非布尔值与或运算

对于非布尔值运算,先将其转换为布尔值,并返回原值。

var result = 2 && 4;

则* result = 4 *。

  • 与运算,如果两个值都为true,则返回后边的。

  • 与运算,如果两个值都为false,则返回前边的。

  • 这与短路的思维有关。如果第一个值为true,则返回第二个值;如果第一个值为false,则返回第一个值。

  • 如果第一个值为true,则直接返回第一个值。

  • 如果第一个值为false,则直接返回第二个值。

result = “” || “hello”;

则,* result = “hello” *。

赋值运算符

a = 5;
a += 5;
a -= 5;
a *= 5;
a /= 5;
a %= 5;

关系运算符

> <
>= <=

  • 任何值和NaN进行比较,都是false。

  • 如果两边都是字符串,则不会转换为数字,而比较字符的Unicode编码。

  • 注意,在比较字符串的数字时,一定要转型

相等运算符

==

  • 当使用两个类型时,会自动进行类型转换。

  • NaN不和任何值相等,包括它本身。

  • 可以通过isNaN()函数来判断是否为NaN。

!=

会自动进行类型转换。

===

全等,类型不同,直接返回false。

!==

不全等,与!=类似,但不会进行自动的类型转换。类型不等,直接返回true。

条件运算符

条件表达式?语句1:语句2;

运算符的优先级

var a, b, c;

优先级一样,则从左往右。

语句与代码块

在JS中可以使用{}来为语句进行分组,{}中的整体叫做代码块。

流程控制语句

  • 条件判断语句
  • 条件分支语句
  • 循环语句
if

if(条件表达式){

}

if(条件表达式){

}else{

}

if(条件表达式){

}else if(条件表达式){

}else{

}

switch

switch(表达式){
case 表达式1:
break;
case 表达式2:
break;
}

while

while(true){}

do{}while(true);

for

for(var i = 0 ; i < 10; i++){}

break和continue
  • if中不能使用break。
  • 可以加一个标签,终止循环。

outer:
for(){
break outer;
}

JavaScript基础语法快速入门相关推荐

  1. python编程基础语法-Python编程基础语法快速入门

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

  2. python编程语法教程-Python编程基础语法快速入门

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

  3. 三、1【Verilog HDL】基础语法快速入门(FPGA开发)

    参考资料: 参考野火FPGA开发视频的基础语法:[野火]FPGA系列Xilinx Artix7教学视频,真正的手把手教学,"波形图"教学法,现场画波形图写代码,硬件基于野火FPGA ...

  4. python基础语法入门大全_python 基础语法——快速入门

    今天来讲一些老生常谈,但凡学习一门语言都逃不过基本的语法,我们也来叨逼叨逼.不过不想事无巨细地讲,因为没有意义,估计讲完了大家都忘记了,我们挑钟爱你,其他的可以自学. 变量,学习一门语言第一件事可能是 ...

  5. JavaScript基础教程新手入门必看

    对前端稍微有点了解的初学者都知道,JavaScript是必不可少的工具.毫不夸张的说,大部分网页都使用了JavaScript,想要成为一个优秀的前端工程师,做出漂亮令用户满意的网页,熟练掌握JavaS ...

  6. javascript基础语法——词法结构

    前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫:而说它复杂,是因为要真正掌握它则需要数年时间.实际上,前端工程师很大程度上就是指javasc ...

  7. thinkph 上花院 生多行mysql_PHP_ThinkPHP3.1基础知识快速入门,在当今众多的MVC框架中,ThinkPH - phpStudy...

    ThinkPHP3.1基础知识快速入门 在当今众多的MVC框架中,ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,其遵循Apache2开源协议发布,自从诞生以来一直秉承简 ...

  8. Linux 基础命令快速入门

    Linux 基础命令快速入门: 目录 Linux 基础命令快速入门: 1.vim 命令记录 2.开机.重启和用户登录注销 3.用户管理 4.用户组相关 5.用户信息文件 6.实用指令 7.帮助指令 8 ...

  9. JavaScript基础语法笔记,ECMAScript基础,每部分都有经典案例以及解析。会持续更新(2022.0310)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.JavaScript导读 1.1 什么是JavaScript(这里借鉴Js红宝书的内容,看一看就可以了) 1.2 ...

最新文章

  1. 学习 Java 8 - 函数式接口 Lambda
  2. 三级计算机系统是什么情况,三级PC技术: 计算机的组成和分类
  3. matlab多变量优化,matlab - Matlab使用fminsearch优化多变量 - 堆栈内存溢出
  4. MongoDB实战指南(二):索引与查询优化
  5. 前端学习(2558):单文件组件
  6. 二 关键词---关键词的选择(二)
  7. python的celery的面试_面试必问的celery,你了解多少?
  8. Omni Recover适用于哪些IOS数据恢复方案?
  9. Jquery—Jquery中$与$.fn的区别
  10. 8大排序算法图文解说
  11. 如何自定义安装mysql_安装MySQL
  12. 浅谈网站建设方案主要内容
  13. Entity 连接数据库以及操作数据库
  14. PC与S7 1200PLC通讯
  15. html5清新文艺,清新文艺句子
  16. 群辉nas虚拟linux,UNRAID教程:3分钟 用unraid自带的虚拟机 安装 黑群晖NAS DSM系统 很强大!...
  17. 力扣(LeetCode)——编译、提交和注释快捷键
  18. 微信openid 服务器备案,微信生态中的 openId、unionID和业务系统中的ID
  19. Ubuntu的一些实用软件
  20. 「推荐系统中的特征工程」1. 特征工程基础知识介绍

热门文章

  1. 【Java】面向对象基本特性-封装
  2. springboot之全局处理异常封装
  3. Sharepoint 2010 解决DFWP - Unable to display this Web Part 的问题
  4. Sping Environment为Null的原因和解决方法
  5. kali 2019-4中文乱码解决方法
  6. ORA-01078和LRM-00109问题导致ORACLE启动失败解决方法
  7. 关于Ubuntu10.04中使用 apt-get install 安装软件总是出现“E: Package *** has no installation candidate” 错误的解决方案
  8. 出现梯度消失与梯度爆炸的原因以及解决方案
  9. uni-app真机调试报错request:fail abort解决方法
  10. 在Vim中上下移动整条线