资料来自:JavaScript 第一步

1. 向 html 页面添加 JavaScript

1.1 内部 JavaScript

在 html 文件中的 </body> 标签前插入代码:

<script>

  // 在此编写 JavaScript 代码

</script>

1.2 外部 JavaScript

外部链接的存在是为了让文件更具层次性,更易管理。创建名为 script.js 的文件,并存放在 html 文件同一目录。如果 html 文件链接多个 JavaScript,较好的做法是创建一个 scripts 文件夹统一存放。将原 <script> 元素替换为:

<!-- script.js 存放在与 html 文件同一目录下 -->
<script src="script.js" async></script>

<!-- script.js 存放在与 html 文件同一目录下的 scripts 文件夹中 -->
<script src="scripts/script.js" async></script>

其中属性 async 是布尔属性,指示浏览器是否在允许的情况下异步执行该脚本。该属性对于内联脚本无作用 (即没有 src 属性的脚本)。效果是让你的 js 变成异步执行,并且减少不必要的 js 文件从而提高性能。

2. 变量浅谈

2.1 声明和初始化变量

JavaScript 中的变量是一种存放数据的容器,并不限定数据类型。声明一个变量,实际上就是创建一个可以存放变量的容器。可以使用两种关键词 varlet 声明一个变量,以及在声明的同时进行赋值:

let myValue1;
var myValue2;
let myValue3 = 8;
var myValue4 = "Future";

关键词 let 是在现代版本中的 JavaScript 创建的一个新的关键字,用于创建与 var 工作方式有些不同的变量,解决了过程中的问题。两者最大的区别在于 var 可以重复声明变量,而 let 则不能,例如:

var myValue = "China";
var myValue = "Italy";

是合法的,而

let myValue = "China";
let myValue = 16;

却是非法的。但建议尽量使用 let,因为定义和赋值是两种逻辑,而重复定义一个变量是没有意义的,合法的操作是:

let myValue = "China";
myValue = 16;

2.2 变量的类型

  • Number(数字:不区分整数与浮点数)

    let myNumber = 58;
  • String(字符串:不区分单字符与字符串)
    let myString = "Sunday is the day I want."
  • Boolean(布尔值:ture 或 false,可通过条件判断进行赋值)
    let iAmAlive = true;
    let test = 6 < 3;
  • Array(数组:类似于 matlab 元胞数组的概念,是一个容器组)
    let myArray = ["China",56,true];
  • Object(对象:类似于 c++ 结构体的概念,用属性来描述对象)
    let dog = { name : 'Spot', breed : 'Dalmatian' };
    console.log(dog.name);

3. 运算符

3.1 算术运算符

运算符 名称 示例
+ 加法 6 + 9
- 减法 12 - 7
* 乘法 3 * 2
/ 除法 10 / 5
% 求余 21 % 9
** 幂乘 3 ** 2

3.2 递增和递减运算符

运算符 说明
num++

对于 output = num++,或 output = num - -

先返回值,再自加/自减

num - -
++num

对于 output = ++num,或 output = - - num

先自加/自减,再返回值

- - num

3.3 赋值运算符

运算符 名称 示例 等价于
+= 加法赋值

x = 3;

x += 4;

x =3;

x = x + 4;

-+ 减法赋值

x = 6;

x -= 3;

x = 6;

x = x - 3;

*= 乘法赋值

x = 2;

x *= 3;

x = 2;

x = x * 3;

/= 除法赋值

x = 10;

x /= 5;

x = 10;

x = x / 5;

3.4 比较运算符

运算符 名称 示例
=== 严格等于 5 === 2 + 6
!== 严格不等于 5 !== 2 + 3
< 小于 10 < 6
> 大于 15 > 13
<= 小于或等于 2 <= 3
>= 大于或等于 1 >= 7

4. 字符串

4.1 字符串的表达、串联和转换

  • 字符串可以用单引号或双引号表示,但不可混用

    let myString1 = "we sat on skyline drive and drank a bottle of apple wine.";
    let myString2 = 'I feel good.';

    两种合法表示方式的好处是:当需要输入英文缩略的时候,可以这样

    let myString = "I'm feeling better.";

    而不是以下会引发错误的表达

    let myString = 'I'm feeling better.';

    但可以使用转义字符 \' 避免该错误

    let myString = 'I\'m feeling better.';
  • 字符串可以通过 + 进行串联,甚至和数字进行串联

    let myString1 = "Artificial";
    let myString2 = "intellegence";
    console.log(myString1 + " " + myString2);
    let myString3 = myString1 + 3;
    console.log(myString3);
  • 可以通过 Number 对象将把传递给它的任何东西转换成一个数字:
    let myString = '123';
    let myNum = Number(myString);

    另一方面,每个数字都有一个名为 toString() 的方法,它将把它转换成等价的字符串:

    let myNum = 123;
    let myString = myNum.toString();

4.2 字符串的常用方法

这里说的 “方法” 指的是对象可以调用的各种处理函数!不是一般意义的 “方法”!!(对象?属性?方法?脑袋有点烧掉)但是没关系,我们先整理常用的字符串方法,JavaScript 对字符串的处理,是通过使用字符串对象携带的方法来实现的。(但这些方法并不会真正地更改字符串的值!!想要获取更改后的值,需要进行另外的赋值

  • 获取字符串的长度

    let browserType = 'mozilla';
    browserType.length;
  • 检索特定的字符串字符
    browserType[0];
    browserType[browserType.length-1];
  • 在字符串中查找子字符串并提取它
  1. 使用 indexOf() 方法查看字符串中是否存在一个子字符串:若有,则返回首字母的索引;若无,则返回 -1。

    browserType = 'mozilla';
    browserType.indexOf('zilla');
  2. 输入首字符与末字符的索引,使用 slice() 方法提取子字符串。如果只有首字母的索引,将认为末字符为字符串的最后一个字符。
    let strSlice = browserType.slice(0,3);
    strSlice = browserType.slice(2);
  3. 转换大小写
    let radData = 'My NaMe Is MuD';
    radData.toLowerCase();
    radData.toUpperCase();
  4. 替换字符串的某部分
    browserType = browserType.replace('moz','van');

5. 数组

  • 创建数组

    let shopping = ['bread', 'milk', 'cheese', 'hummus', 'noodles'];
    let sequence = [1, 1, 2, 3, 5, 8, 13];
    let random = ['tree', 795, [0, 1, 2]];
  • 访问和修改数组元素
    shopping[0];
    shopping[0] = 'tahini';

    访问二维数组

    let random = ['tree', 795, [0, 1, 2]];
    random[2][2];

    上面的例子很有意思,第2行是3列的,而第1行却是2列的,但系统不会报错,而是认为这是一个 2×3 的数组,而 random[1][3] 的值为 null。

  • 获取数组长度
    sequence.length;
    // return 7
    random.length;
    // return 3;
  • 字符串和数组之间的转换
  1. 使用 split() 方法将字符串转换为数组

    let myData = "Manchester,London,Liverpool,Birmingham,Leeds,Carlisle";
    let myArray = myData.split(',');
    // return myArray = ["Manchester","London","Liverpool","Birmingham","Leeds","Carlisle"]
    myData = "New York";
    myArray = myData.split("");
    // return myArray = ["N","e","w"," ","Y","o","r","k"]
  2. 使用 join() 或 toString() 方法将数组转换为字符串
    let myNewString = myArray.join(',');
    let dogNames = ["Rocket","Flash","Bella","Slugger"];
    dogNames.toString();
    // return "Rocket,Flash,Bella,Slugger"
  • 添加和删除数组项
  1. 在数组末尾添加或删除一个项目,可以使用 push() 和 pop() 方法。

    myArray.push('Cardiff');
    myArray.push('Bradford', 'Brighton');
    myArray.pop();
  2. 在数组开始添加或删除一个项目,使用 unshift() 和 shift(),功能上完全相同。
    myArray.unshift('Edinburgh');
    myArray.shift();

小结

JavaScript 新手村大冒险中。勇士,快快加油打怪升级吧!

JavaScript | 新手村(一)变量,运算和变量方法的更多相关文章

  1. 【简译】JavaScript闭包导致的闭合变量问题以及解决方法

    本文是翻译此文 预先阅读此文:闭合循环变量时被认为有害的(closing over the loop variable considered harmful) JavaScript也有同样的问题.考虑 ...

  2. 《JavaScript 闯关记》之变量和数据类型

    当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量,值的类型称作数据类型. 变量 JavaScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据.换句话说,每个变量仅仅是 ...

  3. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

  4. JavaScript 笔记(2) -- 类型转换 & 正则表达 & 变量提升 & 表单验证

    目录:  typeof, null, undefined, valueOf() 类型转换 正则表达式 错误: try, catch, throw 调试工具 变量提升 strict 严格模式 使用误区 ...

  5. 【追寻javascript高手之路02】变量、作用域知多少?

    前言 本来想把这个与上篇博客写到一起的,但是考虑到是两个知识点还是分开算了,于是我们继续今天的学习吧. 基本类型与引用类型 ECMAScript的的变量有两种类型: 基本类型(值类型):简单数据段 引 ...

  6. 玩转变量、环境变量以及数学运算(shell)

    变量和环境变量    var=value  给变量赋值,输出语句:$ echo $var或者是$ echo ${var},记住中间有个空格 例如:name="coffee" age ...

  7. 第九十八节,JavaScript语法、关键保留字及变量

    JavaScript语法.关键保留字及变量 学习要点: 1.语法构成 2.关键字保留字 3.变量 任何语言的核心都必然会描述这门语言最基本的工作原理.而JavaScript的语言核心就是ECMAScr ...

  8. JavaScript高级程序设计学习(三)之变量、作用域和内存问题

    这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...

  9. JavaScript中var和this定义变量的区别

    JavaScript中var和this定义变量的区别 在js中声明变量时可以使用var和this,但使用this的有很大一部分参考书是没有的,经过查阅相关资料总结如下: 用var和this声明变量,存 ...

随机推荐

  1. Noip模拟18 2021.7.17 (文化课专场)

    T1 导弹袭击(数学) 显然,我们要找到最优的A,B使得一组a,b优于其他组那么可以列出: $\frac{A}{a_i}+\frac{B}{b_i}<\frac{A}{a_j}+\frac{B} ...

  2. 要想玩转FPGA,按这4个步骤来

    FPGA 作为一种高新技术,由于其结构的特殊性,可以重复编程,开发周期较短,越来越受到电子爱好者的青睐,其应用已经逐渐普及到了各行各业.因此,越来越多的学生或工程师都希望跨进FPGA的大门掌握这门技术 ...

  3. VirtualBox Share Folder

    转载:https://www.cnblogs.com/Dennis-mi/articles/5896586.html 使用virtualbox最方便的host-guest交换文件方案莫过于共享文件夹功 ...

  4. 【转】PLI是什么以及怎么用

    programmable language interface 这里就说给verilog用的一些系统函数,还是无双大大的帖子 首先介绍了怎么让你自己写的pli系统函数在ncverilog里面可以成功调 ...

  5. 跟着老猫来搞GO,集跬步而致千里

    上次博客中,老猫已经和大家同步了如何搭建相关的GO语言的开发环境,相信在车上的小伙伴应该都已经搞定了环境了.那么本篇开始,我们就来熟悉GO语言的基础语法.本篇搞定之后,其实期待大家可以和老猫一样,能够 ...

  6. nose在python2与python3中的包的自动发现用例的区别

    最近在使用python3,同样装了nose,发现自动发现用例总是有问题,如下面的代码结婚 testcase |------ __init__.py |------ test_bb.py test_bb ...

  7. Python基础(迭代)

    # from collections import Iterable#collections模块的Iterable类型判断 # dict1 = {'a':111,'b':222,'c':333} # ...

  8. 1组-Alpha冲刺-3/6

    一.基本情况 队名:震震带着六菜鸟 组长博客:https://www.cnblogs.com/Klein-Wang/p/15544334.html 小组人数:7人 二.冲刺概况汇报 王业震 过去两天完 ...

  9. layui使用html+servlet+ajax实现登录验证

    我们一般使用的都是form表单提交到Servlet来实现前端和后端的交互的.这次我使用的是ajax提交数据,实现登录操作. 首先我们需要的是一套layui模板,这里用到layui的js和css界面. ...

  10. Python科普系列——类与方法(下篇)

    书接上回,继续来讲讲关于类及其方法的一些冷知识和烫知识.本篇将重点讲讲类中的另一个重要元素--方法,也和上篇一样用各种神奇的例子,从原理和机制的角度为你还原一个不一样的Python.在阅读本篇之前,推 ...