为什么我的变量值在Logger.log中发生变化

时间:2015-12-07 01:44:02

标签: javascript google-apps-script google-apps

我不确定为什么我的Google电子表格应用中的代码会以这种方式运行。我在记录器中的预期输出应为“Zip值为05044”但我完全得到另一个数字。

function getShippingType(){
  var zip = 05044;
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet,
  digitOne,
  sheetName,
  zipToOutput = [];

  Logger.log("Zip Value is " + zip);

  Logger.log(zipToOutput);
  return zipToOutput;
}

Image of unexpected result

3 个答案:

答案 0 :(得分:2)

JavaScript一直试图强迫"数据类型为数据类型,它认为"它应该是。您的Zip变量被实例化为数字。然后你试图连接一个字符串和一个数字。你可能会得到这样的东西:

Zip Value is 2596

您无法将号码转换为zip.toString()的字符串,因为它只会返回" 2596"作为一个字符串而不是" 05044"。

您需要使用引号实例化zip

var zip = "05044";

这与Logger.log()方法无关。这就是JavaScript的工作原理。

现在你正在"硬编码"拉链。但是,如果从电子表格中检索值,并认为变量类型不是您想要的,则可以使用typeof测试数据类型。

Logger.log(typeof zip)

答案 1 :(得分:0)

0 5044中的前导零使其成为八进制数,因此删除前导零以使其为5044。

答案 2 :(得分:0)

看起来如果zip被解释为字符串而不是int。如果你试试

public Employee(String id, String name, double salary, String department, String position, int years)
{
    this.id = id;
    this.name = name;
    this.salary = salary;
    this.department = department;
    this.position = position;
    this.years = years;
}

public void setID(String id){ 
    this.id = id; 
}
public String getID(){ 
    return id; 
}
public void setName(String name){
    this.name = name; 
}
public String getName(){
    return name; 
}
public void setSalary(double salary){
    this.salary = salary; 
}
public double getSalary(){
    return salary; 
}
public void setDepartment(String department){ 
    this.department = department; 
}
public String getDepartment(){ 
    return department; 
}
public void setPosition(String position){
    this.position = position;
}
public String getPosition(){
    return position; 
}
public void setYears(int years){ 
    this.years = years; 
}  
public int getYears(){ 
    return years; 
}
public String toString()
{
    return "Identification " + this.id + "\nName: " + this.name + "\nSalary: " 
            + this.salary + "\nDepartment: " + department + "\nPosition: " 
            + position + "\nYears of Service: " + years;
}

日志文件很好。