JavaScript (一)

注意: JavaScript中的语句要以分号(;)为结束符

 注意: JavaScript中的语句要以分号(;)为结束符

注意: JavaScript中的语句要以分号(;)为结束符

 

引入方式:

直接用标签

<script>

   // js代码

</script>

引入额外的js文件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta http-equiv="content-Type" charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <title>Title</title>
    <script>
        console.log(123);
    </script>
    <script src="myscript.js"></script>
</head>
<body>

<div id="d1">s14</div>

<script>
    console.log(456);
</script>
</body>
</html>

 

语法:

  1. JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
  2. 声明变量使用 var 变量名; 的格式来进行声明
  3. JavaScript中的语句要以分号(;)为结束符。

 

数据类型: (字符串, 数字,布尔值,null,undefined,对象)

 

字符串 :

var name = "alex";
var firstName = "Lee";  // 驼峰式命名
console.log(firstName);
console.log(name);

 字符串方法: 

// var name = "alex";
// var firstName = "Lee";  // 驼峰式命名;
// console.log(firstName);
// console.log(name);

var name = '  niuli 哇咔咔'
console.log(name);

/* 查看字符串长度 */
name.length;

// 删除字符串两侧空格
name = name.trim();
console.log(name);

// 返回第几个字符(索引字符)
console.log(name.charAt(1));

// 字符串拼接 //
var name1 = 'GIANT';
var name2 = 'MERIDA';
var name3 = name.concat(name1,name2);
console.log(name3);
name = name3;

// 查找字符串,从指定索引位置开始,若没找到,返回-1
console.log(name.indexOf('哇咔咔',20));
console.log(name.indexOf('哇咔咔',0));

// 切片取字符串
console.log(name);
console.log(name.substr(0,3));
console.log(name.substring(0,3));

// 切片取字符串
console.log(name.slice(6,10));

// 分割字符串 //
console.log(name.split(' '));

 ES6中引入了模板字符串。模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

// 普通字符串
`这是普通字符串!`
// 多行文本
`这是多行的
文本`
// 字符串中嵌入变量
var name = "q1mi", time = "today";
`Hello ${name}, how are you ${time}?`

 

数字:Number

NaN,表示不是一个数字(Not a Number)

var a = 12.34;
var b = 20;
var c = 123e5;  // 12300000;
var d = 123e-5;  // 0.00123;

 常用方法: ( parseInt parseFloat 转换数字类型 )

parseInt("123")  // 返回123;
parseFloat("123.456")  // 返回123.456;
parseInt("ABC")  // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。;

 

布尔值 :Boolean

var a = true;
var b = false;

 ""(空字符串)、0、null、undefined、NaN都是false。

null undefined

  • null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
  • undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。

null表示变量的值是空,

undefined则表示只声明了变量,但还没有赋值。

 

对象: object

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。

 

数组: (列表)

 

var a = [1,2,3,4];
var b = ['a','b','c','d']
console.log(a)
console.log(b)

 

 常用方法:

console.log(a.length);

// 数组末尾追加
a.push(5);
console.log(a);

// 末尾删除,返回一个删除的元素
// a.pop();
console.log(a.pop());
console.log(a);

a.unshift('头部添加用unshift');
console.log(a);

// 头部删除 没有返回值
a.shift();
console.log(a);

// 切片取值
a2 = a.slice(0,2);
console.log(a2);

// 翻转列表
a.reverse();
console.log(a);
a.reverse();
console.log(a);

// 数组拼接成字符串
a3 = a.join('+');
console.log(a3);


// 删除添加元素/不删除添加元素 返回删除的东西 (可定点插入)
// ( 索引开始  索引结束 要添加的元素)
a.splice(1,2,'添加的元素');
console.log(a);

// 按照ASCII码排序
a = [2,1,33,55,9,0];
a.sort();
console.log(a);

关于sort()需要注意:

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。



function sortNumber(a,b){
    return a - b
}
var arr1 = [11, 100, 22, 55, 33, 44]
arr1.sort(sortNumber)

 遍历数组中的元素

var a = [10, 20, 30, 40];
for (var i=0;i<a.length;i++) {
  console.log(i);
}

 

类型查询

typeof "abc"  // "string"
typeof null  // "object"
typeof true  // "boolean"
typeof 123 // "number"

typeof是一个一元运算符

(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。

对变量或值调用 typeof 运算符将返回下列值之一:

  • undefined - 如果变量是 Undefined 类型的
  • boolean - 如果变量是 Boolean 类型的
  • number - 如果变量是 Number 类型的
  • string - 如果变量是 String 类型的
  • object - 如果变量是一种引用类型或 Null 类型的

运算符:

1. 算术运算符

+ - * / % ++ --

 

2. 比较运算符

> >= < <= != == === !==

注意:
1 == “1”  // true
1 === "1"  // false

 

3. 逻辑运算符

&& || !

 快速把一个变量转换成布尔值

!!1

 

4. 赋值运算符

= += -= *= /=

 

 

流程控制

if else:

a = 10;
if (a>5){
    console.log('大了')
}else {
    console.log('小了')
}

 

 

 

if else if else

b = 10;

if (b>10){
    console.log('bigger');
} else if (b<10) {
    console.log('smaller!');
} else {
    console.log('ok');
}

 

switch / case, break

 

today = 2;

switch (today) {
    case 1:
        console.log('周一吃米饭');
        break;
    case 2:
        console.log('周二吃面条');
        break;
    case 3:
        console.log('周三吃馒头');
break; }

 

 switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。

 

 

for 循环

a = 10;
for (i=0;i<a;i++){
    console.log(i);
}

 

while 循环

i = 0;
while (i<10) {
    console.log(i);
    i++;
} 

 

三元运算

var x = 22;
var y = 2;

var c = x>y ? x:y

c = x>y ? x:y

c =  if ( x>y )  else( ? )  x (  :  或者的意思) y

 

posted @ 2018-09-04 14:56  Niuli'blog  阅读(134)  评论(0编辑  收藏  举报