# 1.JavaScript与Java没有半毛钱关系 之所以叫这么个名字纯粹是为了蹭当时Java的热度 # 2.JavaScript简称JS 也是一门前端的编程语言 前端由于非常受制于后端,所以有一些人异想天开想要通过js来编写后端代码一统江湖 由此开发了一个叫nodejs的工具(支持js跑在后端服务器上)>>>:不好用 # 3.JS最初由一个程序员花了七天时间开发的 里面存在很多bug 为了解决这些bug一直在编写相应的补丁 补丁本身又有bug 最后导致了js中有很多不符合逻辑的地方(成了大家墨守成规的东西) # 4.JavaScript与ECMAScript JavaScript原先由一家公司开发 希望其他公司都使用 最后被组织改名 # 5.版本问题 ECMA5 ECMA6
JavaScript 与 Java 是两种完全不同的语言,无论在概念上还是设计上。 Java(由 Sun 发明)是更复杂的编程语言。 # ECMA-262 是 JavaScript 标准的官方名称。 JavaScript 由 Brendan Eich 发明。它于 1995 年出现在 Netscape 中(该浏览器已停止更新),并于 1997 年被 ECMA(一个标准协会)采纳。 JavaScript 已经由 ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。
# JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 # JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
""" 编写js代码的位置 1.pycharm提供的js文件 2.浏览器提供的js环境(学习阶段推荐) """
通过添加注释来对 JavaScript 进行解释,或者提高代码的可读性。
# 单行注释以 // 开头。 单行注释可用于阻止其中一条代码行的执行(可用于调试) # 还可以在行末使用注释 # 多行注释以 /* 开始,以 */ 结尾。 多行注释用于阻止代码块的执行(可用于调试)
变量是用于存储信息的"容器"。
# 就像代数那样 x=5 y=6 z=x+y # 在代数中,我们使用字母(比如 x)来保存值(比如 5)。 通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11。 # 在 JavaScript 中,这些字母被称为变量。
与代数一样,JavaScript 变量可用于存放值(比如 x=5)和表达式(比如 z=x+y)。
变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
''' 变量必须以字母开头 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做) 变量名称对大小写敏感(y 和 Y 是不同的变量) ''' # JavaScript 语句和 JavaScript 变量都对大小写敏感。
在 JavaScript 中创建变量通常称为"声明"变量。
在js中定义变量需要使用关键字声明
我们使用 var 关键词来声明变量
var carname;
变量声明之后,该变量是空的(它没有值)。
如需向变量赋值,需使用等号
carname="JOJO";
也可以在声明变量时对其赋值
var carname="JOJO";
可以在一条语句中声明很多变量。并使用逗号分隔变量即可
//该语句以 var 开头 var lastname="Doe", age=30, job="carpenter";
声明也可横跨多行
var lastname="Doe", age=30, job="carpenter";
一条语句中声明的多个变量不可以同时赋同一个值
var x,y,z=1; // x,y 为 undefined, z 为 1。
如果重新声明 JavaScript 变量,该变量的值不会丢失
我们还可以用 let 关键字声明变量
let name = 'jojo'
var声明都是全局变量,let可以声明局部变量
使用 const 关键字来定义一个常量。
const pi = 3.14
const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改
const PI = 3.141592653589793; PI = 3.14; // 报错 PI = PI + 10; // 报错
# 并非真正的常量: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。
const
定义常量与使用let
定义的变量相似:
- 二者都是块级作用域 - 都不能和它所在作用域内的其他变量或函数拥有相同的名称
两者还有以下两点区别:
- `const`声明的常量必须初始化,而`let`声明的变量不用 - const 定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。
# 当您向变量分配文本值时,应该用双引号或单引号包围这个值。 # 当您向变量赋的值是数值时,不要使用引号。如果您用引号包围数值,该值会被作为文本来处理。
var pi=3.14; // 如果你熟悉 ES6,pi 可以使用 const 关键字,表示一个常量 // const pi = 3.14; var person="John Doe"; var answer='Yes I am!'; // 结束符号是以分号结束
变量的数据类型可以使用 typeof 操作符来查看
typeof "John" // 返回 string typeof 3.14 // 返回 number typeof false // 返回 boolean typeof [1,2,3,4] // 返回 object typeof {name:'John', age:34} // 返回 object
(相当于python里面的整型int和浮点型float)
# NaN:属于数值类型 意思是'不是一个数字'(not a number) parseInt('abc') # 不报错返回NaN parseFloat('abc') # 不报错返回NaN
(相当于python里面的字符串str)
JavaScript 字符串用于存储和处理文本。
字符串可以是引号中的任意文本。默认只能使用单引号或双引号
var name1="jojo"; var name2='JOJO'; //字符串中的引号不要与字符串的引号相同 var answer = "He is called 'Johnny'"; var answer = 'He is called "Johnny"';
格式化字符串用小顿号
var name3 = `jason`
通常, JavaScript 字符串是原始值,可以使用字符创建: var firstName = "JoJo" 但我们也可以使用 new 关键字将字符串定义为一个对象: var firstName = new String("JoJo")
var x = "JoJo"; var y = new String("JoJo"); typeof x // 返回 String typeof y // 返回 Object // === 为绝对相等,即数据类型与值都必须相等。 var x = "JoJo"; var y = new String("JoJo"); (x === y) // 结果为 false,因为 x 是字符串,y 是对象
原始值字符串, 如 "JoJo", 没有属性和方法(因为他们不是对象)。
原始值可以使用 JavaScript 的属性和方法,因为 JavaScript 在执行方法和属性时可以把原始值当作对象。
(相当于python中的布尔值bool)
布尔(逻辑)只能有两个值:true 或 false。
js中布尔值是全小写
# 布尔值为false的: 0 空字符串 null undefined NaN null的意思是空, undefined的意思是没有定义 Undefined 这个值表示变量不含有值。可以通过将变量的值设置为 null 来清空变量。 # python中布尔值时首字母大写 True False # 布尔值为False的: 0 None 空字符串 空列表 空字典...
(相当于python中的列表、字典、对象)
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔
var person={firstname:"John", lastname:"Doe", id:5566}; // 上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
在 JavaScript中,几乎所有的事物都是对象。
定义 JavaScript 对象可以跨越多行,空格跟换行是关紧要的
var person = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue" };
可以说 "JavaScript 对象是变量的容器"。 但是,我们通常认为 "JavaScript 对象是键值对的容器"。 # 键值对通常写法为 name : value (键与值以冒号分割)。 键值对在 JavaScript 对象通常称为 '对象属性'。 # 对象键值对的写法类似于Python 中的字典
可以通过两种方式访问对象属性
person.lastName; person["lastName"];
# 数组(相当于python中的列表) Array var l1 = [11, 22, 33] # 1.追加元素 js中使用push() python中使用append() # 2.弹出元素 js和python都用的pop() # 3.头部插入元素 js中使用unshift() python中使用insert() # 4.头部移除元素 js中使用shift() python中可以使用pop(0) remove() # 5.扩展列表 js中使用concat() python中使用extend() # 6.forEach var l2 = ['jason', 'tony', 'kevin', 'oscar', 'jerry'] l2.forEach(function(arg1){console.log(arg1)}) VM3143:1 jason VM3143:1 tony VM3143:1 kevin VM3143:1 oscar VM3143:1 jerry l2.forEach(function(arg1,arg2){console.log(arg1,arg2)}) VM3539:1 jason 0 VM3539:1 tony 1 VM3539:1 kevin 2 VM3539:1 oscar 3 VM3539:1 jerry 4 l2.forEach(function(arg1,arg2,arg3){console.log(arg1,arg2,arg3)}) VM3663:1 jason 0 ['jason', 'tony', 'kevin', 'oscar', 'jerry'] VM3663:1 tony 1 ['jason', 'tony', 'kevin', 'oscar', 'jerry'] VM3663:1 kevin 2 ['jason', 'tony', 'kevin', 'oscar', 'jerry'] VM3663:1 oscar 3 ['jason', 'tony', 'kevin', 'oscar', 'jerry'] VM3663:1 jerry 4 ['jason', 'tony', 'kevin', 'oscar', 'jerry'] # 7.splice splice(起始位置,删除个数,新增的值)