// 1、先声明后定义var name;// 声明时,无需指定类型,可接受任意类型的值
name="egon";// 2、声明的同时定义var age=18;/*
JavaScript是一种弱类型、动态语言,弱类型具体表现如下
# 一般规律是,约束越强越不容易出错,但编写程序时也越麻烦。在JavaScript中,因为约束比较弱,所以容易出现这种错误:最简单的例子:
var a =200;
var b ="1";
var c= a + b;
你可能期望c是201,但实际上它是"2001",这个错误在强类型语言中决不会出现。然而正是因为JavaScript没有这些约束,所以可以很方便地拼接数字和字符串类型。
# 再比如下面这个例子:
var a = "11"
a=a-"";
11
a
11
“-”可以是一元运算符(取负),也可以是二元(减法运算)
js是弱类型语言
js是弱类型、动态语言
*/
var x =3;var y =1.1;var z =1e2;var n =NaN;
# 指定位数,四舍五入,结果为string
var num=3.1415var res = num.toFixed(2)
res
"3.14"typeof(res)"string"
num.toFixed(3)"3.142"
# 字符串类型转成数字:
var n =parseInt("123")
n
123typeof(n)"number"
# NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
var n =parseInt("abc")
n
NaNtypeof(n)"number"
# 保留字符串开头的数字
console.log(parseInt("18abc"))18
console.log(parseInt("abc18"))NaN
# int和float的转换
parseInt(123.123);123 # 取整
parseFloat(123.123)123.123
# 数字转字符串
var x =10;var y ='20';var z = x+y;
z
"1020"typeof(z)"string"var m =123var n =String(m)
n
"123"typeof n
"string"var a =123;var b = a.toString()
b
"123"typeof b
"string"
6、2 字符串
var a ="hello";var b ="world";var c = a + b;
c
"helloworld"typeof c
"string"
# 常用方法
.length 返回长度
.trim() 移除空白,返回新值
.trimLeft() 移除左边的空白,返回新值
.trimRight() 移除右边的空白,返回新值
.charAt(n) 返回第n个字符
.concat(value,...) 拼接,拼接字符串通常使用“+”号,返回新值
.indexOf(substring, start) 子序列位置
.substring(from, to) 根据索引获取子序列
.slice(start, end) 切片
.toLowerCase() 小写
.toUpperCase() 大写
.split(delimiter, limit) 分割,limit表示取数组的前几位
var a =" hello "
a.length
11
res=a.trim()"hello"
a
" hello "
res.charAt(2)"l"
res.concat('world')"helloworld"
res
"hello"
res.indexOf('p')-1
res.indexOf('l')2
res.indexOf('lo')3
res.toUpperCase()"HELLO"
res
"hello"
res.split('l')(3)["he","","o"]0:"he"1:""2:"o"
length:3
__proto__:Array(0)
res
"hello"
res.split('e')(2)["h","llo"]
res.split('p')["hello"]
res.split('l',1)["he"]
res.split('l',2)(2)["he",""]
res.split('l',3)(3)["he","","o"]
res.split('l',4)(3)["he","","o"]
# slice、substring两者的相同点:
/*如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度
substirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换
silce()的特点:
如果 start > stop 不会交换两者,取空的字符串
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)*/
res.slice(5,2)""
res.slice(1,1)""
res.slice(-5,5)"hello"
res.slice(-1,5)"o"
res.slice(0,-4)"h"
res.slice(0,-1)"hell"
res.substring(5,2)"llo"
res.substring(-2,2)"he"
res.substring(-2,a)""
res.substring(a,)"hello"
# ES6中引入了模板字符串。模板字符串(template string)是增强版的字符串,用反引号(``)标识,它的用途为
#1、完全可以当做普通字符串使用
var msg =`my name is n`
#2、也可以用来定义多行字符串
var info =`
name:n
age:18
sex:male
`
#3、并且可以在字符串中嵌入变量
var msg =`${res} world`
msg
"hello world"
# 注意:如果模板字符串中需要使用反引号,则在其前面要用反斜杠转义。
6、3 布尔值(boolean)
var a =true;var b =false;Boolean("")falseBoolean(0)falseBoolean(null)falseBoolean(undefined)falseBoolean(NaN)falseBoolean([])trueBoolean({})true
# null和undefined
/* null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。*/
# 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。
var x =[123,9,1211,11]
x.sort()(4)[11,1211,123,9]
# 如果想按照其他标准进行排序,就需要提供比较函数,该函数应该具有两个参数 a 和 b,接收传入的a和b,执行函数体代码,然后返回一个值用于说明a和b的大小
var n ="5";var m ="6";var res = m-n
res
1typeof res
"number"
返回值 <0 :代表a小于b
返回值 =0: 代表a等于b
返回值 >0 :代表a大于b
functionsortNum(a, b){return a-b
};
x.sort(sortNum)(4)[9,11,123,1211]x(4)[9,11,123,1211]
# 遍历数组元素
for(var i=0;i<x.length;i++){
console.log(i)};0123
7、1、2 forEach()的用法
# 语法:
forEach(function(currentValue, index, arr), thisValue)/*currentValue 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值
*/
x.forEach(function(v,i,arr){
console.log(v, i, arr);
console.log(this[0]);},'hello')90(4)[9,11,123,1211]
h
111(4)[9,11,123,1211]
h
1232(4)[9,11,123,1211]
h
12113(4)[9,11,123,1211]
h
# 跟python查找变量的顺序一致
var city ="BeiJing";functionf(){var city ="ShangHai";functioninner(){var city ="ShenZhen";
console.log(city);}inner();}f();//输出结果是?
ShenZhen
=================================================================================var city ="BeiJing";functionBar(){
console.log(city);}functionf(){var city ="ShangHai";return Bar;}var ret =f();ret();// 打印结果是?
BeiJing
=================================================================================var city ="BeiJing";functionf(){var city ="ShangHai";functioninner(){
console.log(city);}return inner;}var ret =f();ret();// 打印结果是?
ShangHai