借鉴java的管理机制,c的函数,最开始交Mocha,后改为LiveScript,当时java特别火,和sun公司合作以后改名为JavaScript。(与java毫无关系)
ECMA:欧洲计算机制造商协会
JavaScript是基于对象和事件驱动的解释性脚本语言
编译性:C、C++(高级语法),计算机只能识别机器语言(0、1) 编译成能够识别的二进制代码。 解释性:JavaScript、php,可以直接被浏览器识别执行,一行一行执行
JavaScript兼容性好,可以跨平台。
JavaScript的组成:
JavaScript与ECMAScript的关系? ECMAScript是JavaScript的语法标准。 JavaScript是ECMAScript的具体体现。
所有的js代码都要写在< script>标签中。
可以引入多个script标签。他们之间顺序执行。
<div onclick = "alert('点击了')"> </div><script>alert(1)</script><script src = 'index.js'></script>【注】如果当前script标签作用引入外部文件,那么这个script标签中,就不能在写代码了。可以创建新的script标签来写外部代码。
如果想要输出文本内容为,不能直接写 document.write("");正确写法:
单行注释 Ctrl+/ 多行注释Ctrl+shift+/
小栗子:
<script>
alert("hello world"); //在页面弹出警告框
document.write("hello world!!"); //在当前文本进行输出
document.write("</script>");
console.log("hello"); //向控制台输出
</script>
块: {} let: 使用 let 关键词声明拥有块作用域的变量。
{
let x = 6; //把6赋值给x
}
例如在循环中使用let:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
let i = 5;
for (let i = 0; i < 10; i++) {
document.write(i+" ");
// 输出为0 1 2 3 4 5 6 7 8 9
}
document.getElementById("demo").innerHTML = i;
// 输出为 5,因为在循环中用 let 声明了变量 i,那么只有在循环内,变量 i 才是可见的
</script>
</body>
</html>6种数据类型:
一、String:

模板字符串:
let nAme = "崔皓月"
document.write(`大家好,我叫${nAme}`)二、Number:
var a = 123;
var b = "123";
console.log(typeof a);结果如下:

三、Boolean:
四、Null:
五、Undefined:
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
var c = 12345;
c = c.toString();
console.log(typeof c);var a = 123;
a = String(a);
console.log(typeof a);字符串—>数字
布尔—>数字
null—>数字
Undefined—>数字
parseInt()把一个字符串转换为一个整数。(把一个字符串中的有效整数取出来然后转化为Number。)
parseFloat()把一个字符串转换成浮点型。(把一个字符串中的有效浮点数取出来然后转化为Number。)
ps.如果对非String使用,它会先将其转化为String然后操作。在js中,如果需要表示16进制数字,需要以0x开头。 如果需要表示8进制数字,则以0开头。 徐耀表示2进制数字,则以0b开头。
对于字符串,可以再parseInt中传递一个第二个参数值,来指定数字的进制。 如
a = "070"; parseInt(a,10);
var a = "hello";
a = !!a;//true运算符也叫操作符,可以对一个或多个值进行运算。
(对非Number类型的值进行运算是,会将这些值转换为Number,然后再运算。 true = 1;false = 0;null = 0;NaN = NaN )
var c = 123;
c = c+"";
console.log(c);
console.log(typeof c); var c = 10;
console.log(c++);//此时原值是10。
c++;
console.log(c++);//调了两次c++,此时原值是12。
例子:
var c = 10;
var sum = c++ + ++c + c;
//10 + 12 + 12 = 34
console.log(sum);符号:=,+=,-=,*=,/=,%= 将等号右侧的值赋给左侧。
语法: 数组用方括号书写: 数组下标从0开始
let 数组名 = [数据1 , 数据2 , ...]创建一个空数组:
var points = [];例如
var cars = ["Porsche", "Volvo", "BMW"];
document.write(cars[0]);
// 访问数组中的某一元素 例如Porsche
document.write(cars);
//访问整个数组数组是一种特殊类型的对象。 数组的属性和方法:
var x = cars.length; // length 属性返回元素的数量
var y = cars.sort(); // sort() 方法对数组进行排序遍历数组元素: 1. 使用for循环(⭐)
var fruits, text, fLen, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
text += "<li>" + fruits[i] + "</li>";
}function myFunction(value) {
text += "<li>" + value + "</li>";
}
var fruits, text;
fruits = ["Banana", "Orange", "Apple", "Mango"];
text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";增加元素: 1. 使用push方法
var fruits = ["Banana", "Orange", "Apple", "Mango"];
function myFunction() {
fruits.push("Lemon");
document.getElementById("demo").innerHTML = fruits;
}var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[6] = "Lemon";注意:JavaScript 不支持命名索引的数组。在 JavaScript 中,数组只能使用数字索引 例如:可以array[0] = “apple”,但是不可以 array[“foot”] = “apple”
数组和对象的区别: 1. 数组使用数字索引。 2. 对象使用命名索引。
如果希望元素名为字符串(文本)则应该使用对象。
如果希望元素名为数字则应该使用数组。